要从SQL语句中提取 WHERE
子句中的值,你可以使用正则表达式或简单的字符串操作来实现。下面是一个使用Python和正则表达式的例子:
示例SQL语句
SELECT * FROM table_name WHERE column1 = 'value1' AND column2 > 100;
Python代码
import re
def extract_where_values(sql_query):
# 正则表达式匹配 WHERE 子句中的条件
where_clause_pattern = re.compile(r'WHERE\s+(.*)', re.IGNORECASE)
match = where_clause_pattern.search(sql_query)
if match:
where_clause = match.group(1)
# 使用正则表达式分离条件
conditions = re.split(r'\s+AND\s+|\s+OR\s+', where_clause, flags=re.IGNORECASE)
return conditions
else:
return []
# 示例SQL语句
sql_query = "SELECT * FROM table_name WHERE column1 = 'value1' AND column2 > 100;"
where_conditions = extract_where_values(sql_query)
# 输出结果
for condition in where_conditions:
print(condition)
解释
- 正则表达式:
WHERE\s+(.*)
用来匹配WHERE
关键字后面的内容。 - 分离条件: 使用
re.split
按照AND
或OR
关键字分离不同的条件。 - 返回值: 这个函数返回一个包含所有条件的列表。
输出
对于上面的SQL语句,输出将是:
column1 = 'value1'
column2 > 100
这样你就可以提取出 WHERE
子句中的各个条件。如果需要进一步提取条件中的具体值,还可以进一步细化正则表达式或进行字符串解析。