如何通过random()和另一个字段来命令mysql查询结果?

时间:2014-06-19 12:55:01

标签: php mysql sql random sql-order-by

我有以下查询随机排序结果:

$sql = "SELECT *, `active` FROM `profiles` WHERE CONCAT(',' , pfCategory , ',') LIKE '%$category%' AND `active`='1' ORDER BY RAND()";

我想在profiles表中添加一个布尔字段,因此值为1的随机结果将出现在随机列表中值为0的那些上面。那可能吗?谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用

$sql = "SELECT *, `active` FROM `profiles` WHERE CONCAT(',' , pfCategory , ',') LIKE '%$category%' AND `active`='1' ORDER BY active, RAND()";

如果Active是用于排序的字段。

祝你好运, 内博伊沙

答案 1 :(得分:1)

尝试使用以下查询:

$sql = "SELECT *, `active` FROM `profiles` WHERE CONCAT(',' , pfCategory , ',') LIKE '%$category%' AND `active`='1' ORDER BY boolean_field_name DESC, RAND()";

答案 2 :(得分:0)

你可以在这里使用案例

 order by case when `active`='1' then 0
               else rand() end