Mysql,如何按一组数字中的第一个数字排序

Mysql,如何按一组数字中的第一个数字排序,mysql,sql-order-by,Mysql,Sql Order By,我需要按包含一组数字的字段排序。假设一个名为TEST的表包含ID、NAME、QUADS和QUADS,如下所示 95,273,212,405 717,450,771,504 391,176,646,272 这是我通过以下查询得到的结果 SELECT * FROM TEST ORDER BY QUADS 391,176,646,272 717,450,771,504 95,273,212,405 这些是我希望得到的结果 95,273,212,405 391,176,646,272 717,450

我需要按包含一组数字的字段排序。假设一个名为
TEST
的表包含
ID、NAME、QUADS
QUADS
,如下所示

95,273,212,405
717,450,771,504
391,176,646,272
这是我通过以下查询得到的结果

SELECT * FROM TEST ORDER BY QUADS
391,176,646,272
717,450,771,504
95,273,212,405
这些是我希望得到的结果

95,273,212,405
391,176,646,272
717,450,771,504
我只对“订单”集合中的第一个数字感兴趣。Figure可以使用逗号的子字符串,但不确定如何在MySQL中执行此操作。

您需要的是函数

... order by substring_index(x_field,',',1)
这将提取
x_字段中的文本,直到第一次出现逗号分隔符为止

select QUADS, 0+QUADS as S from TEST order by S
0+QUADS将把字符串转换为int,并且只使用“,”之前的第一个数字序列,这实际上是您想要的。

尝试以下方法:

select * from test
order by cast(substring_index(quads,',',1) as unsigned)

您能告诉我们您的表结构以及您已经拥有的查询是什么吗?您所尝试的不仅仅是不同寻常的,而是一个坏主意:您不应该(可能)在一列中有多个值(没有很好的理由),因为这与规范化原则相矛盾。