我在mysql表字段中有逗号分隔的值,希望获得其中最常见的值。
即我有一个表名为A
,其中有两个字段id
和available_values
。
id available_values
--- -----------------
1 3,5,7,9
2 3,5
3 5,9
在上面的例子中,所有行中都存在值5,所以我需要得到这个值(平均值-5),因为这在每个记录中都可用。
请帮忙找出解决方案。
提前谢谢。
最好的方法是包含另一个表,其中每个id和值都有一行。但是您可以使用REGEXP
来实现输出:
SELECT * FROM table_name WHERE
available_values REGEXP CONCAT('(^|,)(', replace(5,',','|'),')(,|$)')
SELECT * FROM `test` WHERE FIND_IN_SET($keysValue,available_values)
示例
SELECT * FROM `tableName` WHERE FIND_IN_SET($keysValue,columnsName)