MariaDB SQL 对检索的数据排序
ORDER BY
SELECT prod_name
FROM products;
如果没有排序,数据通常按照底层表中的顺序显示。
关系数据库设计理论认为,如果没有显示指定排序,不应该认为检索的数据顺序是有意义的。
SELECT prod_name
FROM products
ORDER BY prod_name;
以多列为标准排序
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price, prod_name;
当以多列为标准进行排序时,排序的序列必须严格按照规定的顺序,理解这个很重要(此处省略一些字)。如果prod_price列中的值都是唯一的,就没有数据以prod_name为标准进行排序了。
数据的排序方向默认是升序排序(从A到Z)。为了进行降序排序,应使用关键字DESC。
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC;
值得注意的是:
- 如果对文本进行排序,A与a相同吗?a在B之前还是在Z之后呢?这些不是理论性问题,答案取决于数据库是如何设置的。在字典排序顺序中,认为A与a相同,这是MariaDB中的默认行为。然而如果需要,管理员可以更改这种默认行为。这里的关键在于如果需要改变这种排序,一个简单的ORDER BY子句无法做到。
- 结合使用ORDER BY和 LIMIT时,就又可以找出列中的最大值和最小值。
SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;
“prod_price DESC”确保检索到的行按照价格由高到低排序,“LIMIT 1”告诉MariaDB 仅返回一行。
总结:ORDER BY ,多行 ,DESC,排序无法解决字符集相关问题, LIMIT