我想从以下数据中获取确切的行
id name groupid
1 robert 1,2
2 henry 11,12
我的查询是
SELECT * FROM table WHERE groupid LIKE '%1%'
上面的查询将返回两行
如何获得第一行?
假设groupid
是一个varchar
具有存储为逗号分隔列表的 id 的列,您可以尝试以下操作:
select * from table where CONCAT(',',groupid,',') LIKE '%,1,%';
或者更好的方法是在 mysql 中使用FIND_IN_SET函数:
select * from table where find_in_set(1, groupid);
要从数据库表中获取准确的行,只需指定所有字段:
SELECT *
FROM myTable
WHERE id = 1
AND name = 'robert'
AND groupid = '1,2'
或者,假设id
是唯一的主键,您可以使用它:
SELECT *
FROM myTable
WHERE id = 1
使用 LIKE '%1%' 将返回包含 1 的所有结果。使用 @lc 解决方案 WHERE groupid = '1,2' 仅获取具有该特定 ID 的结果。