一条PHP SQL记录被强制放在结果列表中的特定位置
我有一个SQL表;它不是很长,所以我在一个while循环中用RAND对它进行排序 现在,我希望一个特定的记录始终位于(例如)使用PHP查询创建的列表中的第四位 因此,结果必须是一个列表,其中前3个必须用RAND选择,第4个必须始终是一个特定记录,然后结果必须再次用RAND排序 我可以在表中添加额外的列来实现这一点 可能吗 好的,以下是我尝试过的: 我有一个数据库表:一条PHP SQL记录被强制放在结果列表中的特定位置,php,mysql,Php,Mysql,我有一个SQL表;它不是很长,所以我在一个while循环中用RAND对它进行排序 现在,我希望一个特定的记录始终位于(例如)使用PHP查询创建的列表中的第四位 因此,结果必须是一个列表,其中前3个必须用RAND选择,第4个必须始终是一个特定记录,然后结果必须再次用RAND排序 我可以在表中添加额外的列来实现这一点 可能吗 好的,以下是我尝试过的: 我有一个数据库表: +----+---------+ | id | cars | +----+---------+ | z | Opel
+----+---------+
| id | cars |
+----+---------+
| z | Opel |
| z | Audi |
| a | VW |
| z | Ford |
| c | Skoda |
| z | Renault |
+----+---------+
我希望大众在1号位置,然后是一辆随机的车,然后是斯柯达,然后是其他的
但是
产出大众、斯柯达和其他品牌
我也试过:
ORDER BY CASE
WHEN id = 'a' THEN id
WHEN id = 'b' THEN id
WHEN id = 'c' THEN id
WHEN id = 'z' THEN RAND()
END DESC
但是结果是一样的,它经过b,因为没有
有什么想法吗?我建议让我们看看你迄今为止的尝试。一个关键因素是要知道你如何选择“特殊”记录在位置4。如果你的问题是“可能吗?”答案是肯定的。软件中的任何东西都是可能的。正如BigScar所说,给我们看更多。一个节拍,谢谢你更好的编辑!
ORDER BY CASE
WHEN id = 'a' THEN id
WHEN id = 'b' THEN id
WHEN id = 'c' THEN id
WHEN id = 'z' THEN RAND()
END DESC