在动态 SQL 中使用 OR 运算符可以通过以下方式实现:

  1. 使用字符串拼接:
query = 'SELECT * FROM table WHERE '
conditions = []
value1 = 'value1'
value2 = 'value2'
if value1:
    conditions.append('column1 = '{}''.format(value1))
if value2:
    conditions.append('column2 = '{}''.format(value2))
query += ' OR '.join(conditions)

这样,如果value1value2都有值,生成的 SQL 语句会是SELECT * FROM table WHERE column1 = 'value1' OR column2 = 'value2'

  1. 使用参数绑定:
query = 'SELECT * FROM table WHERE '
conditions = []
value1 = 'value1'
value2 = 'value2'
if value1:
    conditions.append('column1 = %s')
if value2:
    conditions.append('column2 = %s')
query += ' OR '.join(conditions)
params = []
if value1:
    params.append(value1)
if value2:
    params.append(value2)
cursor.execute(query, params)

这种方式可以防止 SQL 注入攻击,并且可以处理参数化查询中的参数值。

无论是哪种方式,都可以根据需要灵活地拼接 OR 条件。


原文地址: https://www.cveoy.top/t/topic/qmAu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录