2017-03-21 25 views
0

任何人都可以解释这两个截图之间的区别,比如它实际上是如何工作的?如果你曾经尝试过。'!columnName'的MySQL命令不等于'desc'

  1. 排序DESC是给结果一样:

order by descending

  • 排序的列名,也如同为了通过递减但在一个例子!不同的方式。 order by !column name
  • +0

    下选民有你试过这个吗? – Jigar7521

    +0

    'NOT'或'!'是一个布尔运算符,它在MySQL文档中非常清楚。 https://dev.mysql.com/doc/refman/5.7/en/logical-operators.html#operator_not您不清楚您是在问为什么整数和布尔值之间存在差异? “ORDER BY'如何工作?”是一个非常宽泛的问题,你的问题对于主题来说是混淆和过分的。对于一件事截图应该几乎从来没有必要... – ebyrob

    回答

    2

    NOT运算符返回1或0。所以,如果你使用!值1,那么你得到的0的个数和1的和,因为你没有在ORDER BY另一列,行的集合中的顺序(1和0)没有定义。

    ORDER BY value1 DESC另一方面按降序对行进行排序。

    0

    只是为了帮助你“看”发生什么事(slaakso已经给了你答案),你可以做一些“实验”开始:

    SELECT A, !A AS B FROM (
    select 'A' AS A UNION SELECT 'C' AS A UNION SELECT 'B' UNION SELECT 1 UNION SELECT 0) X 
    ORDER BY !A 
    

    输出:

    A B 
    1 1 0 
    2 B 1 
    3 A 1 
    4 0 1 
    5 C 1