2017-10-21 8 views
0

私は非常に特別な方法でカーソルを並べることに興味があります。私のプログラムでは、ユーザーは検索クエリを入力することができます。私は、彼らが入力したクエリでを開始する項目でソートされた結果を返すしたいと思い、簡単なクエリを含むアイテムの残りの部分が続きます。高度な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()関数を使用したこのサイトでは、いくつかの回答が出ました。それ私が使用したいと思い何のように見えるの並べ替えが、私はあなたがORDER BY句で表現のすべての種類を入れて、「開始物事を置くと言う表現を考え出すことができ、エラー

Error while executing SQL query on database 'database_name': no such function: FIELD 

答えて

2

を取得

order by case when lower(user_type) like 'de%' then 0 else 1 end, 
     lower(user_type) 

user_type列が'de'で始まるときに、case式が0に評価され、それ以外の場合は1にして前0種類以来評価:「デ・初」としてCASEの形式を使用して前方にかなりストレートですの場合、'de'で始まるタイプが最初に表示されます。

field関数は、AFAIKで、MySQL固有のものです。

+0

うわーは魅力的だった。私はSQLiteのクエリについて多くのことを学びます。ありがとう! – hellaandrew