要从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)

解释

  1. 正则表达式: WHERE\s+(.*) 用来匹配 WHERE 关键字后面的内容。
  2. 分离条件: 使用 re.split 按照 ANDOR 关键字分离不同的条件。
  3. 返回值: 这个函数返回一个包含所有条件的列表。

输出

对于上面的SQL语句,输出将是:

column1 = 'value1'
column2 > 100

这样你就可以提取出 WHERE 子句中的各个条件。如果需要进一步提取条件中的具体值,还可以进一步细化正则表达式或进行字符串解析。

python 提取出sql语句中where的值_正则表达式