【发布时间】:2011-09-10 09:02:45
【问题描述】:
我混淆了 MySQL 查询的一个奇怪行为。我有下一个 mysql 查询:
SELECT 'username','status', 'field_1', 'field_2', 'field_3', 'field_4',
FROM my_table
ORDER by field_1 DESC, field_2 DESC, field_3 DESC, field_4 DESC
LIMIT 0,10
按照这个想法,它必须根据 ORDER BY 条件中字段的值数量以降序排列 10 行。但结果我得到了下一个:
凯特 103
皮特 101
史蒂夫 102
而不是
凯特 103
史蒂夫 102
皮特101
有谁知道为什么它设置了错误的顺序?为了使 ORDER BY DESC 条件正确,该怎么做?
是否可以将 MAX() 用于多个字段?如果是,也许可以像这样组织 MySQL 查询?
SELECT 'username','status', 'field_1', 'field_2', 'field_3', 'field_4', MAX(field_1,field_2,field_3,field_4) AS total
FROM my_table
ORDER by total DESC
LIMIT 0,10
【问题讨论】:
-
你的问题毫无意义。当您的选择中只有两列(这两列都不包含单词“field”,顺便说一句)时,您不能按 field_1、field_2、field_3 和 field_4 排序。如果您需要查询方面的帮助,请发布更真实的 SQL 来证明您的问题。
-
@KenWhite 对不起!忘了提到我在选择中按字段排序。很着急,所以也忘了在 SELECT 字段上指出它们。
标签: mysql sql-order-by max greatest-n-per-group