~
pymysql中如何引入正则表达式变量,实现模糊匹配查询?
import pymysql
from sqlalchemy import *
import re
# 给定的字符串,希望能在数据库查到它的模糊匹配结果
keywd = "color ball pen"
# 打开数据库连接
conn = create_engine('mysql+pymysql://username:password@192.168.2.xxx:3306/db??charset=utf8')
regstr = '.*'.join(keywd.split(" ")) # 正则表达式:"color.*ball.*pen"
# 将正则表达式变量引入sql语句。注意(r''+regstr+'')中,是四个单引号,而不是两个双引号。
sql1 = '''select * from table where title regexp "%s" ''' % (r''+regstr+'')
# 读取数据,就是这么简单
df1 = pd.read_sql(sql1, con = conn)
print("df1:\n", df1)
输出结果中,应该有类似这样的模糊匹配记录:
"BIC 4-Color Ballpoint Pen Medium Point "
~