我只是调试遗留代码,我发现了一个奇怪的部分。有没有人知道,MYSQL字符串中的含义是什么?
full_name LIKE '%%{fullname}%%'
答案 0 :(得分:1)
正如Mihir Dave的评论链接所给出的答案一样,如果您通过%%
而不是%
,则与SQL没有区别。由于单个%
匹配零个或多个字符,因此%%
中的每个元字符也将匹配零或更多,并且最终相同的字符串将以这种或那种方式匹配。
但我猜你的遗留代码是Python之前的2.6,它使用%
作为字符串格式的元字符,你必须像%%
一样加倍才能获得单个文字{ {1}}角色。
另见:
答案 1 :(得分:1)
我怀疑这是一个遗留问题。我已经在python 3.7中使用了double percent,尽管在较旧的mysql版本上也使用了double percent,而double percent具有转义第二%的唯一功能。 我是通过Python3.8, MySQL5.7: passing active wildcards to LIKE query
来到这里的