在LIKE查询中查找%字符

时间:2010-05-23 00:02:30

标签: php sql mysql special-characters

我有一个SQL数据库,我想查询谁显示包含符号“%”的所有数据。通常,要在数据库中查找字符(例如:“z”),我使用如下查询:

mysql_query("SELECT * FROM mytable WHERE tag LIKE '%z%'");

但是在这里,我想找到%字符,但在SQL中它是一个小丑,所以当我写:

mysql_query("SELECT * FROM mytable WHERE tag LIKE '%%%'");

它显示了我的所有数据。那么如何在我的SQL数据中找到%字符?

由于

2 个答案:

答案 0 :(得分:12)

您可以使用反斜杠转义%符号:

SELECT * FROM mytable WHERE tag LIKE '%\%%'

引自MySQL 5.0 Reference Manual :: 8.1.1 String s:

  

\%\_序列用于在模式匹配上下文中搜索%_的文字实例,否则它们将被解释为通配符。

答案 1 :(得分:1)

这是一种标准方式:

SELECT * FROM mytable WHERE tag like '%|%%' ESCAPE '|'