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

原文地址:https://www.cnblogs.com/dotdog/p/4472517.html