Php 如何按列名称排序,计算字符串数

Php 如何按列名称排序,计算字符串数,php,mysql,Php,Mysql,我有一个列名,它有多个id号,以逗号分隔。我想按字符串的数目来订购 The Database is like this: ========================= id | user_ids ====|========== 1 | 23,345 ----|------------- 2 | 3247345 ----|------------ 3 | 2,34,1,54 ----|------------ 4 | 222,5,56 I need Output lik

我有一个列名,它有多个id号,以逗号分隔。我想按字符串的数目来订购

The Database is like this:
=========================

id  | user_ids
====|==========
1   | 23,345
----|-------------
2   | 3247345
----|------------
3   | 2,34,1,54
----|------------
4   | 222,5,56

I need Output like this:
=======================

id  | user_ids
====|==========
2   | 3247345
----|-------------
1   | 23,345
----|------------
4   | 222,5,56
----|------------
3   | 2,34,1,54

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

select * from table order by length(user_ids)-length(replace(user_ids, ",", ""))) asc

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

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

select * from table order by length(user_ids)-length(replace(user_ids, ",", ""))) asc

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

您必须这样做

ORDER BY (LEN(col) - LEN(REPLACE(col,',',''))))

你必须这样做

ORDER BY (LEN(col) - LEN(REPLACE(col,',',''))))

事实上,您的表设计违反了规范化规则,您应该考虑重新设计。实际上,您的表设计违反了规范化规则,您应该考虑重新设计。