我的问题是关于mysql中like命令中的多个%operator

eanckbw9  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(314)

是什么 %%%s%% 什么意思?还有,`%(作者)是什么意思?

cursor.execute("SELECT * FROM new WHERE author LIKE '%%%s%%' "%(author)
t3irkdon

t3irkdon1#

在sql中 LIKE 图案, % 匹配任意字符序列。所以如果你写:

WHERE author LIKE '%Jones%'

它将匹配 author 包含 Jones 任何地方。
这段代码也使用python % 字符串格式的运算符,就是这样 %(author) 是给你的。此格式化运算符在以开头的字符串中查找格式化规范 % -- %s 表示替换元组中相应字符串的值 (author) .
从那以后呢 % 在格式字符串中有特殊含义,需要将其加倍才能生成文本 % 性格。
所以如果你这么做了:

author = "Jones"

那么

"SELECT * FROM new WHERE author LIKE '%%%s%%' "%(author)

将:

"SELECT * FROM new WHERE author LIKE '%Jones%'"

相关问题