【问题标题】:MySQL query : search keyword like %MySQL查询:搜索关键字如%
【发布时间】:2019-12-30 03:36:24
【问题描述】:

我试图通过搜索关键字查询数据库表。我的 SQL 如下:

SELECT * FROM some_table WHERE some_name LIKE '%$keyword%'

其中 $keyword 来自 PHP 表单 POST 数据。 $keyword 已被real_escape_string 函数处理。我注意到 $keyword 是 %,所有记录都被选中。如何在内容中搜索带有 %some_name 字段?

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    您必须转义文字 %,如 manual 中所述:

    SELECT * FROM some_table WHERE some_name LIKE '%\%%';
    

    编辑:还请注意,您应该以相同的方式转义 _ 字符,因为这是单字符通配符的符号。

    【讨论】:

    • 但是为什么 real_escape_string 没有为我逃脱 % 呢?
    • 因为 real_escape_string 现在可以知道您在 LIKE 语句中使用了该字符串。它只是为了标准 SQL 安全而转义。
    【解决方案2】:

    您应该在关键字中使用\% 转义%

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      相关资源
      最近更新 更多