Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php,mysql%在类似查询中搜索_Php_Mysql - Fatal编程技术网

php,mysql%在类似查询中搜索

php,mysql%在类似查询中搜索,php,mysql,Php,Mysql,我要查找具有%字符的字符串 例如,当一行的列具有%%时 SELECT * FROM table WHERE column LIKE '%value%'; 如果值为%,则返回全部 如何仅搜索该行?您应该使用反斜杠将其转义 \% 或者您可以将任何转义字符用于: LIKE '%|%%' escape '|' 您可以使用类似的方法来转义PHP中的所有%字符: $original_value = "%%%%%"; $temp = str_split($original_value, 1); $e

我要查找具有%字符的字符串

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

SELECT * FROM table WHERE column LIKE '%value%';
如果值为%,则返回全部


如何仅搜索该行?

您应该使用反斜杠将其转义

\%

或者您可以将任何转义字符用于:

LIKE '%|%%' escape '|'

您可以使用类似的方法来转义PHP中的所有
%
字符:

$original_value = "%%%%%";

$temp = str_split($original_value, 1);

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

echo $escape_value;
结果(转义值):


假设您要查找包含文本“100%”的任何字段,那么您可以将以下查询组合在一起:

方括号逃生:

您可以用方括号将%或u括起来,告诉SQL Server其中的字符是常规字符

SELECT * FROM tablename WHERE fieldname LIKE ‘%100[%]%’
T-SQL转义语法:

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

SELECT * FROM tablename WHERE fieldname LIKE ‘%100\%%’ ESCAPE ‘\’
查询的转义“\”部分告诉SQL引擎将\后面的字符解释为文字字符,而不是通配符

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

SELECT * FROM Table
WHERE Name LIKE '%[\]\[/]%' ESCAPE '\'
此链接可能会有所帮助。。可能重复的
SELECT * FROM Table
WHERE Name LIKE '%[\]\[/]%' ESCAPE '\'