mysql LIKE 双倍百分比

mysql LIKE with double percent

我刚刚调试遗留代码,发现其中有一个奇怪的部分。有谁知道 MYSQL 字符串中的以下内容是什么意思?

full_name LIKE '%%{fullname}%%'

正如 Mihir Dave 的评论链接中的答案一样,如果您传递 %% 而不是 %,则 SQL 没有区别。由于单个 % 匹配零个或多个字符,因此 %% 中的每个元字符也将匹配零个或多个,最终相同的字符串将以一种或另一种方式匹配。

但我猜你的遗留代码是 Python 2.6 之前的版本,它使用 % 作为字符串格式中的元字符,你必须像 %% 一样将它加倍才能获得单个文字 % 字符。

另请参阅:

我怀疑这是一个遗留问题。我也在 python 3.7 中使用了 double percent,尽管我承认在较旧的 mysql 版本中,double percent 具有转义第二个 % 的唯一功能。 我是通过 Python3.8, MySQL5.7: passing active wildcards to LIKE query

来到这里的