LIKEを使用して1つのフィールドのみを検索するSQLiteクエリが必要です。SQLite LIKE&ORDER BY一致クエリ
Basicの例:
SELECT name FROM table WHERE name LIKE "%John%" ORDER BY name LIMIT 10;
問題は、私は結果がこのような方法で注文することにしたいということです。
- フィールドが等しい場合(例えば、 "ジョン")
- の場合フィールドは "John"(例えば "John Doe")から始まります。
- フィールドに "John"が含まれている場合(例: "Jane John Doe")
次のクエリは、期待される結果を達成するが、低速である:
SELECT name FROM table WHERE name LIKE "%John%" ORDER BY CASE WHEN name = "John"
THEN 1 ELSE 2 END, CASE WHEN name LIKE "John%" THEN 1 ELSE 2 END, name LIMIT 10;
上記のクエリは、3つの別々のクエリ(完全一致のための1つ、のための1つを使用することの別のより遅い(または私は間違ってそれをテスト)であります1つはcontainsで始まります)。
他の選択肢はありますか?このように