gpt4 book ai didi

mysql - 按字段排序(列名,(选择))

转载 作者:行者123 更新时间:2023-11-29 08:28:06 25 4
gpt4 key购买 nike

当前查询不起作用:

SELECT * 
FROM users
ORDER BY FIELD(sum, (
SELECT GROUP_CONCAT(sum ORDER BY sum SEPARATOR ',')
FROM users
LIMIT 1
) ASC

我想选择users根据总和进行自定义排序。如果我从查询中得到结果 SELECT GROUP_CONCAT(sum ORDER BY sum SEPARATOR ',') FROM users LIMIT 1然后将其添加到FIELD的第二个参数中,然后它就可以工作了。但是当我在一个查询中执行此操作时,它不会,它只是根本不使用任何顺序。

最佳答案

在这种特殊情况下您应该使用 FIND_IN_SET:

SELECT * 
FROM users
ORDER BY FIND_IN_SET(sum, (
SELECT GROUP_CONCAT(sum ORDER BY sum SEPARATOR ',')
FROM users
LIMIT 1
) ASC

FIELD 需要一个项目列表:

FIELD(sum, sum1, sum2, sum3, sum4)

而 FIND_IN_SET 需要一个带有逗号分隔值列表的字符串:

FIND_IN_SET(sum, 'sum1,sum2,sum3,sum4')

但为什么不只是:

SELECT *
FROM users
ORDER BY sum DESC

关于mysql - 按字段排序(列名,(选择)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17391041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com