gpt4 book ai didi

MySql if then 查询

转载 作者:行者123 更新时间:2023-11-29 00:59:03 25 4
gpt4 key购买 nike

是否可以在 mySql 中使用 if/then 语句?我希望检查 JOIN 表中列的值,并根据该列的值对结果进行排序。

我很抱歉的尝试:

SELECT t1.*
FROM t1
JOIN t2 ON t1.ID = t2.ID
WHERE t1.ID = '888'
if(t2.col1 = '1') ORDER BY t1.tid ASC
else ORDER BY RAND()

最佳答案

你可以使用CASE:

ORDER BY
CASE WHEN t2.col1 = 1 THEN t1.tid ELSE rand() END ASC

请注意,此操作的性能可能不太好,因为 MySQL 无法为订单 t1.tid 使用索引。

你还应该知道你可以通过多个东西来排序,所以这可能会做你想做的:

ORDER BY t1.tid ASC, RAND()

此外,您应该记住 ORDER BY RAND() LIMIT 1 实际上会获取每一行,为每一行计算一个随机数,对它们进行排序,最后只返回第一行。因此,对于合理大小的数据,它会很慢(并且还会导致临时表)。

关于MySql if then 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4619692/

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