Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果第一行是随机化的,那么如何选择行,其余的应该按照标准排序_Mysql_Sql_Select_Sql Order By - Fatal编程技术网

Mysql 如果第一行是随机化的,那么如何选择行,其余的应该按照标准排序

Mysql 如果第一行是随机化的,那么如何选择行,其余的应该按照标准排序,mysql,sql,select,sql-order-by,Mysql,Sql,Select,Sql Order By,我的数据库表“hotels”具有以下结构: id (int) name (varchar) is_top (tinyint) price (smallint) 该表包含以下数据: id|name|is_top|price 1|Vean|1 |2.05 2|Gret|0 |5.10 3|Kapa|0 |0.72 4|Yeny|0 |0.39 5|Lena|1 |0.95 如何选择按“is_top”(降序和随机化)排

我的数据库表“hotels”具有以下结构:

id       (int)
name     (varchar)
is_top   (tinyint)
price    (smallint)
该表包含以下数据:

id|name|is_top|price
 1|Vean|1     |2.05
 2|Gret|0     |5.10
 3|Kapa|0     |0.72
 4|Yeny|0     |0.39
 5|Lena|1     |0.95
如何选择按“is_top”(降序和随机化)排序的行,以及按价格升序排序的其余行

我尝试了以下查询,但未成功:

SELECT id, name, is_top, price 
FROM `hotels` 
ORDER BY IF (is_top=1, RAND(), price) ASC
编辑:
预期结果应为:

id|name|is_top|price
 5|Lena|1     |0.95
 1|Vean|1     |2.05
 4|Yeny|0     |0.39
 3|Kapa|0     |0.72
 2|Gret|0     |5.10

前两行(其中is_top=1)应始终随机。

您的
order by
子句应该有两列-第一列是
is_top
,第二列是计算的
案例
表达式-
兰德()
is_top
1
价格
否则:

SELECT   id, name, is_top, price 
FROM     `hotels` 
ORDER BY is_top DESC, CASE is_top WHEN 1 THEN RAND() ELSE price END ASC

你能告诉我你希望给你的样本数据如何排序吗?我不确定我是否在跟踪。。。