为了账号安全,请及时绑定邮箱和手机立即绑定

由数据框形成的逗号分隔列表在传递到 SQL 时中断

由数据框形成的逗号分隔列表在传递到 SQL 时中断

Cats萌萌 2023-02-12 19:04:38
当我的数据框中没有任何值时,我的查询中断。我有数据框data1['invoice_number'],我正在将另一个 sql 作为逗号分隔列表传递。当我们有值时,下面的代码可以完美运行,但当我没有任何值时,它就会中断。sql1 = '''selectcarrier_account, invoice_number, invoice_amount, currency, invoice_datefrom invoice_summary where invoice_number in ({})'''.format(','.join(["'{}'".format(x) for x in data1['invoice_number']]))inv_summary= pd.read_sql_query(sql1,cnx)错误psycopg2.errors.SyntaxError) syntax error at or near ")"LINE 2: from invoice_summary where invoice_number in ()有没有办法让我仍然可以在不中断的情况下执行此查询。
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

MySQL 不允许IN (). 如果您不想在列表为空时跳过查询,您可以做的是向 SQL 列表添加一个永远不会匹配的额外元素。


sql1 = '''selectcarrier_account, invoice_number, invoice_amount, currency, invoice_date

from invoice_summary where invoice_number in ('', {})'''.format(','.join(["'{}'".format(x) for x in data1['invoice_number']]))

查看完整回答
反对 回复 2023-02-12
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号