订购方式:在LIKE之前退回unLIKE?

时间:2012-04-16 17:32:57

标签: sql sqlite

这应该是一个简单的,但我有一个时刻。为什么ORDER BY与LIKE将匹配结果排序为比不匹配更高的值?为了得到结果,我希望我必须在ASC和DESC上混合使用相同的数据:

create table foo (name text);
select name from foo order by name like 'm%' desc, name;

2 个答案:

答案 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)也查询应该给出想要的结果..