2011-08-25 65 views
3

我有這樣一段代碼在這裏:

$query = mysql_query("SELECT * FROM example WHERE text LIKE '%$value%'"); 

難道有所作爲,如果我會用:

$query = mysql_query("SELECT * FROM example WHERE text LIKE '$value'"); 

如果有的話,那會是什麼?有什麼區別?

回答

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 
12

它在PHP中沒有區別,它是SQL中的通配符。你可以閱讀更多關於它here。從本質上講,%

匹配任何數目的字符,甚至零個字符

1

在PHP中是沒有區別的(雖然你可能想看看使用PDO的數據庫查詢),在「 %'符號影響在MySQL中執行的查詢。

%作爲通配符所以第一個結果將返回任何包含將在其文本屬性「價值」這個詞,而第二個將只返回匹配的記錄正是「價值」一詞

2

不同的是,「%$值%」將SEACH用於容納$值匹配(對於爲例如果$值=「富」它可以返回「foobar的」或「barfoobar」),「$值」只匹配$ value的確切值。

相關問題