要从SQL语句中提取 WHERE 子句中的值,你可以使用正则表达式或简单的字符串操作来实现。下面是一个使用Python和正则表达式的例子:

示例SQL语句
SELECT * FROM table_name WHERE column1 = 'value1' AND column2 > 100;
  • 1.
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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
解释
  1. 正则表达式: WHERE\s+(.*) 用来匹配 WHERE 关键字后面的内容。
  2. 分离条件: 使用 re.split 按照 ANDOR 关键字分离不同的条件。
  3. 返回值: 这个函数返回一个包含所有条件的列表。
输出

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

column1 = 'value1'
column2 > 100
  • 1.
  • 2.

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

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