我刚刚调试了一个遗留代码,发现其中有一个奇怪的部分。有人知道,mysql字符串中的以下内容是什么意思吗?
full_name LIKE '%%{fullname}%%'
sz81bmfz1#
正如mihirdave的评论链接所给出的答案一样,如果您传递了 %% 而不是 % . 自从单身以来 % 匹配零个或多个字符,然后匹配中的每个元字符 %% 也会匹配零个或多个,最终相同的字符串会以某种方式匹配。但我猜您的遗留代码是使用 % 作为字符串格式中的元字符,你必须像 %% 获取单个文本 % 性格。另请参见:如何在python字符串中有选择地转义percent(%)?https://docs.python.org/2.6/library/stdtypes.html#string-格式化操作
%%
%
euoag5mw2#
我怀疑这是一个遗留问题。在python3.7中,我也使用了double%的方法,不过不可否认的是,在较旧的mysql版本中,double%只有转义第二个%的功能。我是通过python3.8 mysql5.7实现的:将活动通配符传递给like查询
2条答案
按热度按时间sz81bmfz1#
正如mihirdave的评论链接所给出的答案一样,如果您传递了
%%
而不是%
. 自从单身以来%
匹配零个或多个字符,然后匹配中的每个元字符%%
也会匹配零个或多个,最终相同的字符串会以某种方式匹配。但我猜您的遗留代码是使用
%
作为字符串格式中的元字符,你必须像%%
获取单个文本%
性格。另请参见:
如何在python字符串中有选择地转义percent(%)?
https://docs.python.org/2.6/library/stdtypes.html#string-格式化操作
euoag5mw2#
我怀疑这是一个遗留问题。在python3.7中,我也使用了double%的方法,不过不可否认的是,在较旧的mysql版本中,double%只有转义第二个%的功能。我是通过python3.8 mysql5.7实现的:将活动通配符传递给like查询