You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

筛选家庭收入高于指定值的城市方法及SQL语法错误修复指南

错误原因
  • 语法逻辑错误:> 数值比较运算符和 LIKE 字符串模糊匹配运算符不能同时作用于同一个字段,二者连用不符合MySQL语法规范
  • 场景使用错误:LIKE 仅用于字符串字段的模糊匹配,家庭收入中位数是数值类型字段,做大于比较不需要加LIKE和通配符%
  • 存在安全风险:直接拼接用户输入的字符串到SQL语句中,存在SQL注入漏洞,应当使用参数化查询传递参数
修复后的实现代码
mycursor = df.cursor()

# 先把用户输入的收入转成数值类型,避免字符串和数值比较的问题,支持小数可替换为float()
income = int(input("income :"))
# 使用参数化查询,%s是占位符,参数通过execute的第二个参数元组传递
sql = """
SELECT zip, city, state_name, income_household_median 
FROM sample
WHERE income_household_median > %s 
ORDER BY income_household_median DESC
"""
mycursor.execute(sql, (income,))

myresult = mycursor.fetchall()
for x in myresult:
    print(x)
补充说明

如果需要同时对城市名、州名等字符串字段做模糊匹配,再使用LIKE运算符即可,数值大小比较直接使用>、<、=等常规比较运算符即可。

内容的提问来源于stack exchange,提问作者amirh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:24:07