我这里有这段代码:
$query = mysql_query("SELECT * FROM example WHERE text LIKE '%$value%'");
如果我愿意,它会有所作为:
$query = mysql_query("SELECT * FROM example WHERE text LIKE '$value'");
如果是,那会是什么?会有什么区别?
答案 0 :(得分:12)
它在PHP中没有区别,它是SQL中的通配符。您可以阅读更多相关信息here。基本上,%
匹配任意数量的字符,即使是零字符
答案 1 :(得分:9)
是的,这与php无关,它是一个sql的东西,%意味着像一个通配符,可能有0个或更多的字符而不是它。
%abc% matches abc, aabca, aabc, abcd
%abc matches dabc, abc but not abcd or tabcd
abc% matches abcd, abc but not dabc, tabcd
答案 2 :(得分:2)
区别在于'%$ value%'会搜索包含$ value的匹配项(例如,如果$ value ='foo'它可以返回'foobar'或'barfoobar'),'$ value'仅匹配精确值值的价值。
答案 3 :(得分:1)
在PHP中没有区别(尽管您可能希望看一下使用PDO进行数据库查询),'%'符号会影响在MySQL中执行的查询。
%充当通配符,因此第一个结果将在其text属性中返回包含术语“value”的任何内容,而第二个结果将仅返回与完全“价值”一词