【问题标题】:mysql LIKE query contains ampersand symbol. How to allow LIKE query for text that contains such symbols?mysql LIKE 查询包含 & 符号。如何允许对包含此类符号的文本进行 LIKE 查询?
【发布时间】:2023-03-05 18:42:01
【问题描述】:

我的搜索查询是

SELECT * FROM table1 where table1.field LIKE '%P&G Innovation Center%'

注意查询中的&

这不会返回准确的结果。

我应该怎么做才能得到准确的结果?

【问题讨论】:

  • 它返回了不应该返回的内容?它可以工作here。与号不是MySQL special character。无论如何,如小提琴所示,逃避它似乎没有害处。
  • 结果看起来有什么问题?我原以为与号不需要像百分号那样转义。转义字符是一个反斜杠,所以如果您认为与符号有特殊含义有问题,那么您可以转义它。
  • LIKE 应该可以与 & 符号一起使用。这个 SQLfiddle (sqlfiddle.com/#!2/1411d/1) 也建议这样做。您遇到了什么问题?
  • 谢谢你们!原来这是一个 javascript,我忘记对搜索查询文本进行编码。傻我!

标签: mysql sql-like stop-words


【解决方案1】:

我对 ajax 搜索和普通的非 ajax 搜索使用相同的代码。

我只在非 ajax 搜索中检查 MySQL 查询。

原来是ajax搜索,我忘了用encodeURIComponent正确转义&

我傻了!

答案:错误原来是由于在 javascript 而不是 MySQL 级别缺少 encodeURIComponent(searchQuery)

【讨论】:

    【解决方案2】:

    将此用作您的查询 SELECT * FROM table1 where table1.field LIKE '%P&' || 'G创新中心%'

    【讨论】:

      猜你喜欢
      • 2012-08-14
      • 1970-01-01
      • 2019-04-30
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多