Mysql 按逗号数排序

Mysql 按逗号数排序,mysql,Mysql,我正试图按其中一列中存在的逗号数对select语句的结果排序 mysql中有没有一种方法可以用逗号排他性地排序。您可以使用如下查询,按照特定字段中逗号的数量对结果进行排序: select * from table order by length(areaCodeField)-length(replace(areaCodeField, ",", ""))) desc 查询的order by部分将计算字段中的所有字符,然后减去所有不计算逗号的字符。这就给您留下了逗号的数量。您可以使用一个简单的解决

我正试图按其中一列中存在的逗号数对select语句的结果排序


mysql中有没有一种方法可以用逗号排他性地排序。

您可以使用如下查询,按照特定字段中逗号的数量对结果进行排序:

select * from table order by length(areaCodeField)-length(replace(areaCodeField, ",", ""))) desc

查询的order by部分将计算字段中的所有字符,然后减去所有不计算逗号的字符。这就给您留下了逗号的数量。

您可以使用一个简单的解决方法(这可能不是很有效):


对不起,我不知道是否还有其他解决方案。

您能更具体一点吗?您的数据库在一列中是否有逗号分隔的值?我在这一列中有以逗号分隔的区号,我想计算逗号,因为这将清楚地标识每个条目的数量。我假设重新构造数据库以实现规范化为时已晚?请修复您的架构,这是解决这个问题的正确方法。如果你发现自己不得不处理比一列小的东西,那你就错了。
ORDER BY
    LENGTH(column) - LENGTH(REPLACE(column, ',', '')) asc