使用场景
数据库里字段存的值是逗号分割的数据,查询到这个数据后需要在其他语句中作为条件。
table1
id | name | age |
1 | 张三 | 18 |
2 | 李四 | 20 |
3 | 王五 | 22 |
table2
id | names |
1 | 张三,李四,王五 |
想要查询 name 在 张三,李四,王五 中的人员姓名,可以写成
select * from table1 where name in ("张三","李四","王五");
如果是通过查询table2 得到的 table1_ids, 并且是字符串类型时,可以写成
select * from table1
where FIND_IN_SET(name, (select names from table2 where id = 1));