• 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

  • 相关阅读:
    Spring bean的自动装配
    JSP三大指令
    JSP九大内置对象
    Java异常的捕获顺序(多个catch)
    Integer.parseInt(s)和Integer.valueOf(s)之间的区别
    mysql忘记密码(MySQL5.7)
    java的四种内部类
    内存泄露查询
    深度优先和广度优先比较
    循环队列
  • 原文地址:https://www.cnblogs.com/dotdog/p/4472517.html
Copyright © 2020-2023  润新知