2015-06-25 34 views
1

我有一張如下表,如何在web2py dal select查詢中使用concat?

| ID | 名稱 |

| 1 | foo |

| 2 | bar |

我想寫一個select查詢,它應該返回id前面的一些準備結束文本。所以我的輸出應該是這樣的,val_1 & val_2。 我在web2py選擇查詢中看不到任何concat方法。爲了達到我的要求,我需要分別處理結果。有沒有辦法在web2py中使用SQL concat形成select查詢?

+0

您好不確定關於web2py,但sqlite連接字符串的語法應該像SELECT'val_'|| ID AS ID,名稱從表...看[這裏](http://sqlfiddle.com/#!7/43966/3)如果這是你的意思 –

+0

@AleksandarMiladinovic我希望它在web2py DAL中完成。無論如何感謝您的建議 – Karthick

回答

2

.select()方法可以採取SQL表達式作爲除了字段參數,因此可以這樣做:

val = "'val_' || mytable.id" 
rows = db(db.mytable).select(val) 
print rows[0][val] 

注意,在選擇使用的表達式時,所得到的值被存儲在該行的對象與一個等同於SQL表達式本身的鍵,因此使用[val]可以從行對象中提取值。

作爲上述方法的替代方法,您可以考慮使用computed fieldvirtual field

+0

這是完美的工作。在我的情況下,字符串'val_'會動態改變。所以我會用第一個。我希望我們在定義表格時在虛擬字段中提供動態值。 – Karthick

+0

是否可以替換mytable.id中的值?如果有任何文件,請與我分享。我找不到任何東西:| – Karthick

+0

關於'val_'動態變化,你也可以用虛擬域來做到這一點。關於替換「id」字段本身的值,no,你不會那樣做,因爲DAL要求「id」字段是一個自動遞增的整數字段。 – Anthony