Sadece LIKE kullanarak 1 alanını arama yapan bir SQLite sorgusuna ihtiyacım var.SQLite LIKE & ORDER BY Sorgulama sorgusu
Temel örnek: alanına (örneğin "John")
- :
SELECT name FROM table WHERE name LIKE "%John%" ORDER BY name LIMIT 10;
Sorun sonuç bu şekilde sipariş edilmesi istememizdir alan "John" ile başlar (örn. "John Doe")
- Eğer alan "John" içeriyorsa (örneğin "Jane John Doe")
aşağıdaki sorgu beklenen sonucu elde fakat yavaştır:
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;
sorgu üzerinde 3 ayrı sorgular (tam eşleme için, biri için bir tane kullanma alternatif daha (ya da yanlış test) daha yavaş ile başlar ve içerir için bir).
Başka alternatifler var mı? Bu şekilde