以前我发现这一次,一直在使用它;然而,今天看,我意识到我不完全明白为什么它的作品。有人可以给我一些光吗?
ORDER BY s.type!= 'Nails',s.type!= 'Bolts',s.type!= 'Washers',s.type!= 'Screws',s.type!= 'Staples',s.type!= 'Nuts',...
如果我通过s.type命令,它按字母顺序排列。如果我使用上面的示例,它将使用与行位置相同的顺序。我不明白的是使用!=。如果我使用=它以相反的顺序出现。我不能围绕着这个概念。
这对我来说,使用=代替上面的!=’将会使Nails首先处于位置,但是它不会将它放在最后。我想我的问题是这样的:为什么我必须使用!=,不是=在这种情况下?
我从来没有看过它,但似乎是有道理的。
起初它通过s.type!=’Nails’命令。对于类型列中包含Nails的每一行,这是false。之后,它被Bolts分类。对于包含Bolts作为类型的所有列,再次评估为false。等等。
一个小的测试显示,假在真实之前被命令。所以你有以下几点:首先你得到所有的行与Nails在顶部,因为根据ORDER BY评估为false和false首先。其余行按第二个ORDER BY标准排序。等等。
type | != Nails | != Bolts | != Washers 'Nails' | false | true | true 'Bolts' | true | false | true 'Washers' | true | true | false