2015-02-05 153 views
-1

現在我的SQL代碼MySQL的字符串比較:我怎麼精確匹配字符串

$result2 = mysql_query("SELECT * FROM mmg_disabled_users WHERE user LIKE '%$name%' "); 

,但一定情況下,我沒有得到正確的結果。 一個帳戶是Russell Smith,另一個帳戶是Russell Smith - iPad

即使我想要其中之一,我也會得到兩個結果。 我已經嘗試過使用Binary和=運算符。

我怎麼能這兩個用戶

+0

'='運算符是要走的路。你能分享你的嘗試和它給你的(錯誤)結果嗎? – Mureinik 2015-02-05 16:39:12

+0

$ result2 = mysql_query(「SELECT * FROM mmg_disabled_users WHERE BINARY user ='%$ name%'」); $ b = 0; while($ row2 = mysql_fetch_array($ result2)){ $ b ++; } if($ b> 0){ $ status ='disabled'; }其他{ $ status ='enabled'; } 因此它將這兩個帳戶設置爲禁用或啓用。我想禁用一個,並啓用另一個。 – 2015-02-05 16:40:20

回答

0

%是爲like操作通配符。如果你想匹配確切的字符串,你不應該使用它:

$result2 = mysql_query("SELECT * FROM mmg_disabled_users WHERE user = '$name'"; 
0

之間試試這個辦法區分,BINARY

SELECT * FROM mmg_disabled_users WHERE BINARY user ='Russell Smith' 
SELECT * FROM mmg_disabled_users WHERE user LIKE BINARY 'Russell Smith'; 
SELECT * FROM mmg_disabled_users WHERE user='Russell Smith' LIMIT 1; 
SELECT * FROM mmg_disabled_users WHERE user LIKE '%Russell Smith%' LIMIT 1;