正如標題所示,SQLite中Python '%s %s' % (first_string, second_string)
的等效物是什麼?我知道我可以像first_string || " " || second_string
那樣連接,但它看起來非常難看。SQLite等價於Python的「'%s%s'%(first_string,second_string)」
回答
沒有一個。
我可以理解不喜歡first_string || ' ' || second_string
,但這是等價的。標準SQL(SQLite在這方面的說法)並不是世界上最漂亮的字符串操作語言。您可以嘗試將查詢結果返回到其他語言(例如,您似乎喜歡的Python)並在其中進行串聯;通常最好不要在數據庫層中進行「演示」(當然,使用串聯結果作爲搜索的對象並不是一個好主意;這使得不可能使用索引進行優化!)
我並不完全確定你在找什麼,但它可能是group_concat
aggregate function。
你確定你不是在尋找參數替換嗎?
直接從sqlite3 module documentation:
相反,使用DB-API的參數替換。放?作爲一個佔位符,無論你想使用一個值,然後提供一個值的元組作爲遊標的execute()方法的第二個參數。 (其他數據庫模塊,可以使用不同的佔位符,如%S或:1)
例如:
# Never do this -- insecure!
symbol = 'IBM'
c.execute("... where symbol = '%s'" % symbol)
# Do this instead
t = (symbol,)
c.execute('select * from stocks where symbol=?', t)
# Larger example
for t in [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
('2006-04-05', 'BUY', 'MSOFT', 1000, 72.00),
('2006-04-06', 'SELL', 'IBM', 500, 53.00),
]:
c.execute('insert into stocks values (?,?,?,?,?)', t)
不,我的意思是在常規查詢的'SELECT'部分執行操作。 (例如連接兩列值) – c00kiemonster 2010-10-20 12:45:41
好吧,我只是想「以防萬一......」;-) – Steven 2010-10-20 14:12:33
注意,你可以創建自己的SQL級功能。例如,你可以有這樣的Python功能:
def format_data(one, two):
return "%s %s" % (one, two)
使用pysqlite的create_function或APSW的createscalarfunction告訴SQLite的了。然後,你可以做查詢,像這樣:
SELECT format_data(col1, col2) FROM table WHERE condition;
SELECT * from TABLE where col1 = format_data('prefix', col2);
因此你可以把格式化邏輯在你舒適的可讀的Python代碼,同時保持SQL簡單而清楚地表明意圖。
- 1. Python,SQLite:'%s'中的撇號
- 2. 爲什麼不是[\\ s *]等同於\\ s *?
- 3. 「char s []」和「char * s」是否等價的函數參數?
- 4. Python 3 - [s for s in subsets(S)] and yield
- 5. NSCoding V/S sqlite的
- 6. 什麼是Perl的ucfirst()或s /// e的Python等價物?
- 7. Java與Python的「Got value:%s」%變量的等價性?
- 8. Python的 - 通過dict`s字典價值
- 9. % - #s標籤等效
- 10. windows tr -s等效
- 11. s = s + s和s + = s之間的區別短
- 12. NRZ-S與Python
- 13. 雖然循環python,s = s + 1
- 14. Apache-Error:[file「apache2_util.c」] [line 271] [level 3] [client%s] ModSecurity:%s%s [uri「%s」]%s
- 15. 什麼是Ruby的等效Python的`s =「hello,%s。%s是哪裏?」 %( 「約翰福音」, 「瑪麗」)`
- 16. 我不明白什麼是「S」指的在S =「1」,「S = 2」等在SpreadsheetDocument OpenXML中
- 17. python string u「%(word)s」
- 18. 格式符 - %s%S
- 19. vswprintf:Mac%s vs Windows%S
- 20. 差(/ \ S /)和$ .TYPE(/ \ s /)
- 21. 哪個更快s + ='a'或s = s +'a'python
- 22. /\A[^\\s][email protected]([^@\s]+\.++[^@\s]+\z/含義?
- 23. 什麼是(?s)y(?m)en powergrep的等價物?
- 24. Python等價於bwmorph
- 25. Python等價於ignoreboth:erasedups
- 26. 在Perl中,s/^ \ s + //和s/s + $ //有什麼區別?
- 27. 的Python /熊貓/ PyMySQL - %S synthax
- 28. 將\ s或\ n等特殊字符打印爲'\ s'或'\ n'
- 29. 「S」附近的SQLite語法不正確
- 30. 在C#中使用SQLite的語用-S
確實如此,但python字符串格式化比較靈活。無論如何,我會堅持更醜陋的方式。 – c00kiemonster 2010-10-20 12:46:54