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

如何将字符串数组转为适配SQL IN子句的逗号分隔字符串?

解决SQL IN子句的字符串序列拼接问题

要把字符串列表(如['a', 'b', 'c'])转换成适合SQL IN子句的'a','b','c'格式,有几种简洁的实现方式:

基础拼接方法

最直接的方式是使用str.join()结合生成器表达式,给每个元素添加单引号后用逗号连接:

status_arr = ['a', 'b', 'c']
out = ','.join(f"'{item}'" for item in status_arr)
# 输出结果:'a','b','c'

处理空列表场景

如果status_arr可能为空,可添加判断逻辑避免生成无效的SQL语句:

if status_arr:
    out = ','.join(f"'{item}'" for item in status_arr)
else:
    # 可根据需求设置默认值,比如空字符串或适配IN()的合法值
    out = ''

更安全的SQL写法(推荐)

直接拼接字符串存在SQL注入风险,如果列表元素来自用户输入,建议使用数据库驱动支持的参数化查询:

# 以psycopg2(PostgreSQL驱动)为例
import psycopg2

conn = psycopg2.connect("dbname=test user=postgres")
cursor = conn.cursor()

status_arr = ['a', 'b', 'c']
# 用元组传递参数,驱动会自动处理格式
cursor.execute("SELECT * FROM your_table WHERE status IN %s", (tuple(status_arr),))

内容的提问来源于stack exchange,提问作者Stéphane GRILLON

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:55:17