php,mysql%在LIKE查询中搜索

时间:2015-11-13 05:42:42

标签: php mysql

我想找到包含%character

的字符串

例如,当一行的列具有%%%%%,

SELECT * FROM table WHERE column LIKE '%value%';

如果value为%,则返回all。

如何只搜索该行?

4 个答案:

答案 0 :(得分:1)

你应该用反斜杠逃避它......

\%

答案 1 :(得分:1)

或者你可以使用任何转义字符:

LIKE '%|%%' escape '|'

答案 2 :(得分:0)

你可以使用这样的东西来逃避PHP中的所有%字符:

$original_value = "%%%%%";

$temp = str_split($original_value, 1);

$escape_value = '\\'.implode('\\', $temp);

echo $escape_value;

结果(转义价值):

\%\%\%\%\%

答案 3 :(得分:0)

假设您要查找包含文本“100%”的任何字段,因此您将此查询放在一起:

方形支架逃生:

您可以用方括号括起%或_,告诉SQL Server内部的字符是常规字符。

SELECT * FROM tablename WHERE fieldname LIKE ‘%100[%]%’

T-SQL ESCAPE语法:

或者,您可以将ESCAPE运算符附加到查询中,并在要转义的值之前添加\字符。

SELECT * FROM tablename WHERE fieldname LIKE ‘%100\%%’ ESCAPE ‘\’

查询的ESCAPE'\'部分告诉SQL引擎将\后的字符解释为文字字符而不是通配符。

最简单的方法是包含我不想要的字符,例如方括号和斜线:

SELECT * FROM Table
WHERE Name LIKE '%[\]\[/]%' ESCAPE '\'