2015-02-05 55 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;