mysql查询匹配精确的字符串或数字

时间:2013-01-16 09:56:36

标签: php mysql mysqli

我的结果是MySQL表。 我需要得到的结果只有在user_id中只有6而不是26。

id   users_id

 15    6,5
 16    1,5
 18    2,8
 19    1,26
 20    6,26
 21    5,10
 22    28,6
 23    21,9 
 24    29,6

我正在使用MySQL查询

SELECT * FROM WHERE users_id LIKE '%6%'

结果

id  user_id

15  6,5
19  1,26   why is this here..
20  6,26
22  28,6
24  29,6

结果不正确。 我只需要:

id  user_id

15  6,5
22  28,6
24  29,6

5 个答案:

答案 0 :(得分:2)

尝试::

SELECT  *
FROM    tableName
WHERE   user_id like '6,%' or user_id like '%,6' or user_id like '%,6,%'

答案 1 :(得分:1)

SELECT  *
FROM    tableName
WHERE   FIND_IN_SET(6, users_id) > 0 AND
        FIND_IN_SET(26, users_id) = 0

SOURCE

答案 2 :(得分:0)

因为您的查询检查结果是否在每个地方都包含6。

显然,26包含6 ......

你可以(存在其他方式)

where (users_id like '6,%' or users_id like '%,6')

sqlFiddle

答案 3 :(得分:0)

也许试试:

SELECT * FROM WHERE users_id IN ('6');

应该匹配6。

http://www.w3schools.com/sql/sql_in.asp

答案 4 :(得分:0)

或者你不知道FIND_IN_SET或关于'OR'你可以:

id   users_id

 15    |6|5|
 16    |1|5|
 18    |2|6|

并选择user_id,例如'%| 6 |%'