如何使用查询获取确切的行

时间:2012-08-27 07:41:20

标签: mysql joomla

我想从以下数据中获取确切的行

id   name     groupid

1    robert   1,2
2    henry    11,12

我的查询是

SELECT * FROM table WHERE groupid LIKE '%1%'

以上查询将返回两行 如何获得第一排?

4 个答案:

答案 0 :(得分:4)

您可以使用FIND_IN_SET

SELECT * FROM table WHERE FIND_IN_SET('1', groupid)

但是作为建议,你不应该保存这样的数据。

答案 1 :(得分:3)

假设groupidvarchar列,其中ids以逗号分隔列表存储,您可以尝试这样做:

select * from table where CONCAT(',',groupid,',') LIKE '%,1,%';

或更好的方法是在mysql中使用FIND_IN_SET函数:

select * from table where find_in_set(1, groupid);

答案 2 :(得分:0)

要从数据库表中获取确切行,只需指定所有字段:

SELECT *
FROM myTable
WHERE id = 1
AND name = 'robert'
AND groupid = '1,2'

或者,假设id是唯一的主键,您可以使用它:

SELECT *
FROM myTable
WHERE id = 1

答案 3 :(得分:0)

使用LIKE'%1%'将返回包含1的所有结果。使用@lc解决方案WHERE groupid ='1,2'仅获取具有该特定ID的结果。