[英]Python-generated MySQL SELECT query not returning full list of results
我正在编写一个Python3脚本,该脚本接受用户输入的数字并将其分配给一个名为“ set_budget”的变量,然后该变量用于构造MySQL SELECT
查询。 我正在使用MySQLdb数据库连接器库。 我的代码的相关部分如下所示:
set_budget = ''
set_budget = sys.argv[1]
budget = ''
if set_budget == '0':
budget = '10.00'
elif set_budget == '1':
budget = '25.00'
elif set_budget == '2':
budget = '50.00'
else:
print('Enter "0" for $10.00, "1" for $25.00, and "2" for $50.00')
budget_query = ("SELECT park_name FROM parks WHERE admission_price <= " + budget)
cursor = connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute (budget_query)
result_set = cursor.fetchall()
从理论上讲,如果用户输入数字“ 0”,则这应该创建一个SELECT park_name FROM parks WHERE admission_price <= 10.00
MySQL的MySQL查询,例如SELECT park_name FROM parks WHERE admission_price <= 10.00
。 mission_price列是数据库中的一个十进制(5,2)字段。
当我直接在MySQL中查询SELECT park_name FROM parks WHERE admission_price <= 10.00
,它正确地返回了SELECT park_name FROM parks WHERE admission_price <= 10.00
在0.00和10.00之间的所有公园。
但是,当我运行Python脚本时,仅返回门票价格在0.00到9.99之间的公园。 此外,如果我通过在脚本中键入“ 1”来选择$ 25.00选项,则它会莫名其妙地排除某些价格在10.00到25.00之间的公园,此外还要排除accessory_price恰好是25.00的公园。
我在执行此代码时是否做错了事?还是应该使用其他方法通过Python构造MySQL查询?
事实证明,我的代码没有错。 当我重新启动Ubuntu 16.04服务器时,问题自行解决。 我不确定为什么会发生这种情况,但是如果其他人遇到类似的问题,我会保留我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.