2015-10-06 38 views
-1

我在python中使用sqlite3快速搜索許多值(它是一個救生員)。數據庫每行有兩個條目:'A'和'B'。 'B'是一系列字母(seq)。在python中更具體的sqlite3搜索

我想統計我的長度l的搜索查詢的次數與'B'中的第一個l + 1個字符的次數。

我的搜索代碼是目前:

for row in c.execute('SELECT * FROM my_db WHERE seq LIKE ?', (t+'%',)): 

這將檢查如果我的搜索查詢是出現在「B」,但並沒有給我任何進一步的信息。

我試圖找到其他地方的答案,包括堆棧溢出和sqlite3文檔。謝謝。

編輯:你好,如果那些投我的問題的人可以告訴我爲什麼,或者直接指向我可能沒見過的資源,那將是有益的。謝謝。

+0

所以,你想匹配的行數? –

+0

是的,下一行是i = i + 1,因此它應該計算與我的搜索查詢「匹配」的值。我只想在搜索查詢匹配'B'中的值的開始時增加i。 – poppyseeds

回答

1

要計算行,請使用aggregate查詢:

c.execute("SELECT COUNT(*) FROM my_db WHERE seq LIKE ?", (t + '%',)) 
rows = c.fetchone()[0] 
+0

謝謝你的回答。我希望統計'B'列中在前l個字符中具有搜索查詢的值,其中l是搜索查詢的長度。您給出的方法給出了B中的所有條目,其中包含序列中任何位置的搜索查詢。是否有可能只搜索B中的特定部分? – poppyseeds

+0

沒有B列。如果模式前綴爲'%',LIKE也會像這樣工作。 –

+0

謝謝@CL!這真的很有幫助! – poppyseeds