高级SQLite ORDER BY查询
问题描述:
我有兴趣以非常特定的方式排序游标。在我的程序中,用户可以输入搜索查询。我想回用项目开始与他们输入查询排序结果,其次是简单包含查询该项目的其余部分。高级SQLite ORDER BY查询
例如:用户输入“de”。我想我的光标,以这样的方式进行排序,所有的列是开始与“德”是第一,其次是列的其余部分是包含“德”。
这里就是我想我的光标是什么样子:
Deathless Behemoth
Deathmark
Deathmark Prelate
Deathmask Nezumi
Deathmist Raptor
Deathpact Angel
Acid Web Spider
Careful Consideration
Hell-Bent Raider
Jhovall Rider
Living Death
开始,“德”是高于一切,仅仅包含“德”的光标。
PS我在这个网站上遇到了一些人在使用ORDER BY FIELD()函数的答案。那种貌似我想要使用的工具,但我得到一个错误
Error while executing SQL query on database 'database_name': no such function: FIELD
答
你可以把各种表情的ORDER BY子句,并想出,说一个表达式“把东西开始以“德”为先”是非常简单的使用案例的形式:
order by case when lower(user_type) like 'de%' then 0 else 1 end,
lower(user_type)
所以当user_type
柱'de'
启动时,case
表达式计算为0
,否则计算结果为1
,自0
排序前1
,以'de'
开头的类型将排在第一位。
field
函数是AFAIK,特定于MySQL。
哇,像一个魅力工作。我还有很多要了解SQLite查询。谢谢! – hellaandrew