前提・実現したいこと
pythonでsqliteを使い、where区で特定のカラムの先頭5文字を限定してデータ取得したい。
発生している問題・エラーメッセージ
sqlite3.OperationalError: no such function: SUBSTRING
該当のソースコード
python
1import sqlite3 2 3def filepath_to_db(filepath): 4 5 conn = sqlite3.connect(filepath) 6 7 # 全データを抽出する 8 cur = conn.cursor() 9 10 cur.execute( 11 "SELECT item_id, store_name, item_name FROM items s WHERE SUBSTRING(s.item_name, 1, 6) like 'パンナコッタ'") 12 13 items_list = cur.fetchall() 14 15 # items_list's address into address_db 16 address_db_pre = [] 17 address_db = [] 18 19 for n in range(int(len(items_list))): 20 address_db_pre = [] 21 address_db_pre.append(items_list[n][1]) 22 address_db_pre.append(items_list[n][3]) 23 address_db.append(address_db_pre) 24 return address_db 25 26tokyo_okasi_list = filepath_to_db("tokyo_okasi.sqlite")
試したこと①
python
1 cur.execute( 2 "SELECT item_id, store_name, item_name FROM items s WHERE LEFT(s.item_name, 6) like 'パンナコッタ'")
sqlite3.OperationalError: near "(": syntax error
試したこと②
python
1 cur.execute( 2 "'SELECT item_id, store_name, item_name FROM items s WHERE LEFT' + '(' + 's.item_name, 6' + ')' + 'like "パンナコッタ"' ")
sqlite3.OperationalError: near "(": syntax error
はまってしまいましてかなり苦戦しております。どなたかアドバイス頂けないでしょうか。
宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
win10
python3.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/04 13:10