这应该是一个简单的,但我有一个时刻。为什么ORDER BY与LIKE将匹配结果排序为比不匹配更高的值?为了得到结果,我希望我必须在ASC和DESC上混合使用相同的数据:
create table foo (name text);
select name from foo order by name like 'm%' desc, name;
答案 0 :(得分:8)
“x”喜欢'm%'是假的;像'm%'这样的“车队”是正确的; “FALSE”< “TRUE”。
答案 1 :(得分:0)
你可以使用union
......
select name from foo where name like 'm%'
order by name desc
union all
select name from foo where name not like 'm%'
order by name asc
它将根据您的要求给出结果.. :))
在第二个联合选择查询中添加了asc ...只是为了更容易理解的语句...没有这个(ASC)也查询应该给出想要的结果..