gpt4 book ai didi

mysql - 如何让MYSQL查询结果按ORDER BY条件排序?

转载 作者:IT老高 更新时间:2023-10-28 23:50:36 25 4
gpt4 key购买 nike

我的查询字符串是这样的:

SELECT ... FROM maintable
LEFT JOIN table1 on (maintable.id = table1.idx)
LEFT JOIN table2 on (table1.idy = table2.idy)
LEFT JOIN table3 on (table2.idz = table3.idz)
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static

//condition1 & condition2 & condition3 are kind of
table3.idz = 101, table3.idz = 3, maintable.id IN (1,2,3,4), and so on

对于结果,我希望首先返回满足 condition1 的条目,然后返回满足 condition2 的条目,最后返回满足 condition3 的条目.有什么想法吗?

最佳答案

要按您想要的顺序进行排序,请在 ORDER BY 中使用您的条件,但在它们之后使用 DESC

SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 DESC,
condition2 DESC,
condition3 DESC

如果这不起作用,因为您的查询更复杂,那么您可以使用 bool 逻辑将您的查询 (A OR B OR C) AND D 更改为 (A AND D ) OR (B AND D) OR (C AND D) 那么您可以使用以下查询:

SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 AND static DESC,
condition2 AND static DESC,
condition3 AND static DESC

AND static 在这里不是必需的,因为所有行都返回它,但是在更复杂的示例中(您还返回一些非静态的行),那么您必须在此执行方式。

关于mysql - 如何让MYSQL查询结果按ORDER BY条件排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2612914/

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