什么是正确的(MySql) - 查询以获得表的最高和最小值?我得到了这个,但那有点错误:
SELECT * FROM temperaturs ASC LIMT 3 UNION SELECT * from temperaturs ORDER BY `Temperatur_Celsius` DESC LIMIT 3;
这也有问题:
SELECT * FROM tabelle_name ORDER BY spalte1 DESC LIMIT k UNION SELECT * FROM tabelle_name ORDER BY spalte1 ASC LIMIT k
答案 0 :(得分:2)
您的查询只需要括号:
(SELECT * FROM temperaturs ORDER BY `Temperatur_Celsius` ASC LIMIT 3)
UNION ALL
(SELECT * from temperaturs ORDER BY `Temperatur_Celsius` DESC LIMIT 3);
注意:我从UNION
切换到UNION ALL
。如果表少于6行,这将允许多行。一般来说,UNION
是一种不好的做法,因为它会导致删除重复项的开销。
当UNION
/ UNION ALL
的子查询使用ORDER BY
或LIMIT
时,MySQL需要使用括号。