【问题标题】:mysql LIKE with double percentmysql LIKE 与双百分比
【发布时间】:2018-06-14 17:50:42
【问题描述】:

我刚刚调试了一段遗留代码,我发现其中有一个奇怪的部分。有没有人有想法,MYSQL字符串中的以下含义是什么?

full_name LIKE '%%{fullname}%%'

【问题讨论】:

标签: php mysql yii sql-like


【解决方案1】:

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

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

另见:

【讨论】:

  • 别提了,环境是Yii1/PHP。谢谢。
  • 我没用过 Yii。是否有可能使用%{fullname}% 作为标记来替换某些内容,然后两边多余的% 字符是实际的SQL 通配符?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2021-05-07
    • 2021-11-22
    • 2012-09-25
    • 2013-03-22
    • 2015-05-26
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多