我有一张只有3列的表格。当我输入以下查询
时select * from MyTable order by 5 and 2;
我得到表中的所有内容(结果等于select * from MyTable;
的结果)。我最初的期望是我会遇到某种错误。但我没理解,为什么?
答案 0 :(得分:6)
order by 5 and 2
被解释为order by (5 and 2)
这是一个常量表达式,因此没有进行实际排序,数据只是按插入顺序显示。
答案 1 :(得分:2)
这里发生的是5 and 2
被视为一个被评估为1的表达式。但是,它不应该给出按第一列排序的结果。
实际上,我认为你只能获得排序数据,因为你是按照排序顺序插入的。看看这个SQLFiddle:
http://sqlfiddle.com/#!2/3e04e/1
数据未按any of the columns
排序,按value 1
排序。
答案 2 :(得分:1)
5和2是列索引,它们表示第5列和第2列。
答案 3 :(得分:0)
select * from MyTable order by 5,2;
It means start with index 5 and bring 2record i.e 5,6,7