下面的示例查詢導致“行值被濫用”錯誤。我只是無法弄清楚問題所在。我的目的是提取“ISIN”匹配“Test1”和“Test2”的所有記錄。
環境:Python 3.10.0 Windows 21H1
import sqlite3 as objSQLite
# Connect
objDatabase = objSQLite.connect("Sample.db")
objCursor = objDatabase.cursor()
# Create table
objCursor.execute("create table if not exists ScripData(ISIN text);")
# Add rows
objCursor.execute("insert or ignore into ScripData values(?)", ("Test1", ))
objCursor.execute("insert or ignore into ScripData values(?)", ("Test2", ))
objCursor.execute("insert or ignore into ScripData values(?)", ("Test3", ))
objCursor.execute("insert or ignore into ScripData values(?)", ("Test4", ))
objDatabase.commit()
# Query
objCursor.execute("select * from ScripData where ISIN=(?,?)", ("Test1", "Test2", ))
arrResult = objCursor.fetchall()
print(arrResult)
錯誤是:
Traceback (most recent call last):
File "Query.py", line 19, in <module>
objCursor.execute("select * from ScripData where ISIN=(?,?)", ("Test1", "Test2", ))
sqlite3.OperationalError: row value misused
uj5u.com熱心網友回復:
您不能用于=查找多個值的匹配項,您需要使用IN.
objCursor.execute("select * from ScripData where ISIN IN (?,?)", ("Test1", "Test2" ))
arrResult = objCursor.fetchall()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/337834.html
上一篇:Python:晚上把附近的足浴店都給爬了一遍,好兄弟針不戳!
下一篇:python中相互依賴的靜態方法
