gpt4 book ai didi

php - 根据 MySQL 中 ORDER BY 的可用性考虑多列的值

转载 作者:行者123 更新时间:2023-11-29 01:57:01 24 4
gpt4 key购买 nike

我有 10 个价格类别。

我已对所有内容进行编码,以便根据可用性在价格字段中显示正确的价格。那部分工作得很好。

但我不知道如何在查询中设置 ORDER BY,以便在排序之前考虑所有价格字段。

我有这些字段:

'price1`, 'price2`, 'price3`, 'price4`, 'price5`, 'price6`, 'price7`, 'price8`, 'price9`, 'price10`

我当前的查询如下所示:

SELECT * FROM vehicles WHERE `to`='$to' ORDER BY `price1`;

这在仅显示 price1 的字段时有效。然而,如果 price1 和其他价格字段的结果是混合的,它仍然只考虑 price1。

我也试过:

SELECT * FROM vehicles WHERE `to`='$to' ORDER BY `price1`, `price2`, `price3`, `price4`, `price5`, `price6`, `price7`, `price8`, `price9`, `price10`;

显然失败了。

如何同时对所有这些字段使用 ORDER BY?

感谢任何帮助。谢谢你。

最佳答案

SELECT * FROM vehicles WHERE `to`='$to' ORDER BY GREATEST(`price1`, `price2`, `price3`, `price4`, `price5`,`price6`,`price7`, `price8`, `price9`, `price10`) DESC

以上应从任何“价格”列中找到的最大值一直向下到该行最大列的最小值排序。

假设你有一张 table

 == Table structure for table test

|------
|Column|Type|Null|Default
|------
|id|int(11)|No|
|price1|int(11)|No|
|price2|int(11)|No|
|price3|int(11)|No|
== Dumping data for table test

|1|10|20|10
|2|30|10|10
|3|100|20|10
|4|10|10|60

查询

SELECT * FROM `test` ORDER BY GREATEST(`price1`, `price2`, `price3`) DESC

会输出

== Dumping data for table test

|3|100|20|10
|4|10|10|60
|2|30|10|10
|1|10|20|10

关于php - 根据 MySQL 中 ORDER BY 的可用性考虑多列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25996034/

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