find_in_set
+----+-----------+
| id | extra_ids |
+----+-----------+
| 1 | 1,2,3 |
| 2 | 4,5,6,1,3 |
| 3 | 7,3,1,2,5 |
+----+-----------+
-- 看到有人是用like做的,虽然这两种都会全表扫描,这样用会比like好。
select * from test where find_in_set(5, extra_ids);
group_concat
+----+----------+
| id | group_id |
+----+----------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
+----+----------+
-- group_concat(id)
select group_concat(id order by id desc separator '|') as ids from test group by group_id;
+-----+----------+
| ids | group_id |
+-----+----------+
| 2|1 | 1 |
| 3 | 2 |
+-----+----------+
find_in_set hive也可以用
you are so smart