我的问题是关于mysql的Like命令中的多个%运算符

时间:2018-11-22 06:12:01

标签: mysql python-3.x

%%%s%%是什么意思?还有%(author)是什么意思?

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

1 个答案:

答案 0 :(得分:2)

在SQL LIKE模式中,%匹配任何字符序列。因此,如果您写:

WHERE author LIKE '%Jones%'

它将与其中包含author的{​​{1}}匹配。

此代码还使用Python Jones运算符进行字符串格式化,这就是%的作用。该格式运算符在以%(author)开头的字符串中寻找格式规范,%表示替换元组%s中相应字符串的值。

并且由于(author)在格式字符串中具有特殊含义,因此您需要将其加倍以产生文字%字符。

因此,如果您这样做:

%

然后

的值
author = "Jones"

将是:

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