使用动态SQL语法,设计并实验一个多条件查询的功能模块
时间: 2024-02-25 10:51:30 浏览: 88
好的,以下是一个使用动态SQL语法实现多条件查询的示例代码:
```python
import pymysql
def dynamic_search(col1=None, col2=None, col3=None):
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', db='database_name', charset='utf8mb4')
cursor = conn.cursor()
# 使用动态 SQL 语法生成查询语句
sql = 'SELECT * FROM table_name WHERE 1=1'
if col1:
sql += ' AND col1=%s'
if col2:
sql += ' AND col2=%s'
if col3:
sql += ' AND col3=%s'
# 执行查询语句
cursor.execute(sql, (col1, col2, col3))
# 获取查询结果
result = cursor.fetchall()
# 关闭数据库连接
cursor.close()
conn.close()
return result
```
上述代码定义了一个名为 `dynamic_search` 的函数,该函数接受三个参数 `col1`、`col2` 和 `col3`,分别代表要查询的列的条件值。该函数使用了动态 SQL 语法,通过拼接字符串的方式生成查询语句。其中 `if` 语句用于判断参数是否为 `None`,如果不为空,则将该参数的查询条件拼接到查询语句中。最后,使用 `execute` 函数执行查询,获取查询结果。
使用示例:
```python
result = dynamic_search(col1='value1', col2='value2', col3=None)
print(result)
```
上述示例调用了 `dynamic_search` 函数,传入了三个参数,其中 `col1` 和 `col2` 的值为 `'value1'` 和 `'value2'`,`col3` 的值为 `None`,表示只查询 `col1` 和 `col2` 的值为 `'value1'` 和 `'value2'` 的记录。如果需要查询其他列,则可以将函数中的查询条件拼接语句进行修改。
阅读全文