繁体   English   中英

Python生成的MySQL SELECT查询未返回完整的结果列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM