我有一个只有3列的表.当我键入以下查询时
select * from MyTable order by 5 and 2;
Run Code Online (Sandbox Code Playgroud)
我得到表中的所有东西(结果等于select * from MyTable;).我最初的期望是我会遇到某种错误.但是我没理解,为什么?
这里发生的情况是,它5 and 2被视为一个计算结果为 1 的表达式。但是,它不应该给出按第一列排序的结果。
实际上,我认为你只能得到排序的数据,因为你按排序的顺序插入了它。看看这个 SQLFiddle:
http://sqlfiddle.com/#!2/3e04e/1
数据不是按 排序any of the columns,而是按 a 排序value 1。