请问 mysql 里如何判断两个 CSV 有交集?

假设表 t 的列 csv 存的都是以 , 分隔的值(值本身肯定没有 , );
id | csv
1 | 'v1,v2,v3'
2 | 'v2,v3'
3 | 'v3'
...

现在我想把 csv 列含有 'v1'、'v2' 任何一个的行都选出来,就是只要 csv 列与 'v2,v1' 存在非空交集的行(CSV的顺序无所谓);请问 SQL 应该怎么写?

上例中,选出来的是前两行。谢谢!

阅读 2.1k
1 个回答
select * from t where FIND_IN_SET('v1',csv) or FIND_IN_SET('v2',csv);
推荐问题