3

所以我正在使用 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 上不起作用时,我在循环中的计数器只是在中间冻结并停止执行任何操作。对于第三条和第五条语句,循环最终退出并在循环之后开始打印内容。谁能帮我确定我调试代码可能有什么问题或不同的方法?感谢您的帮助!

4

1 回答 1

0

尝试在查询中使用斜杠。

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

告诉我它是否有效。

于 2015-05-08T07:05:09.037 回答