所以我正在使用 Python MySQL 连接器,并且我正在尝试编写一些代码,根据行是否符合我给它的条件来选择一些行。该表有一列用于化学品,一列用于加利福尼亚州的县(以及其他)
以下所有代码行都可以通过 MySQL 控制台完美运行:
SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county='YOLO') AND (chemical='CR6')
SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (chemical='CR6')
SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (chemical='CR')
SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county='YOLO') AND (chemical='CR')
SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county='YOLO') AND (chemical='NO3')
对于上面的每一条语句,我都把语句放在引号里,然后通过python执行。然后我尝试运行一个简单的脚本。例如
query = "SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county='YOLO') AND (chemical='CR')"
cursor.execute(query)
i = 0
for (wellName,approximateLatitude,approximateLongitude,chemical,result,units,date,county) in cursor:
print i
i = i+1
你们能猜出 Python 脚本对上述 5 个语句中的哪一个起作用了吗?只有第三个和第五个……这对我来说毫无意义,因为它们几乎是同一件事,我改变了化学物质,它们都在 MySQL 命令行上完美运行。更具体地说,当我说该命令在 Python 上不起作用时,循环中的计数器只是在中间卡住并停止执行任何操作。对于第三条和第五条语句,循环最终退出并开始打印循环后的内容。任何人都可以帮助我确定调试代码的可能错误或不同方法吗?感谢您的帮助!
最佳答案
尽量在查询中使用斜杠。
query = "SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county=\'YOLO\') AND (chemical=\'CR\')"
cursor.execute(query)
i = 0
for (wellName,approximateLatitude,approximateLongitude,chemical,result,units,date,county) in cursor:
print i
i = i+1
告诉我它是否有效。
关于Python/MySQL 连接器 : Some queries hang based on the input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30116396/