SQLite dizesi başka dize sorgusu içerir


111

Bunu nasıl yaparım?

Örneğin, sütunum "kediler, köpekler, kuşlar" ise ve sütunun kedileri içerdiği herhangi bir satır almak istiyorum?


3
bir dizi örnek veri ile sorunuzu düzenleyin. Tam olarak ne istediğini belirlemek zor.
p.campbell

Mutlu 100. oylama.
bishop

Yanıtlar:


196

LIKE kullanarak:

SELECT *
  FROM TABLE
 WHERE column LIKE '%cats%'  --case-insensitive

4
Bunun, aradığınız dizenin değişken olduğu veya gibi özel bir karakter içerdiği durumlarda uygun olmadığını unutmayın %.
Sam

10
"kediler" başka bir tablodan bir '%'||table2.field||'%'
alansa

96

Bu LIKEdurum için uygun olsa da instr, arama dizesindeki karakterlerin kaçmasını gerektirmeyen daha genel amaçlı bir çözüm kullanmaktır . Not: instrSqlite 3.7.15'ten itibaren mevcuttur .

SELECT *
  FROM TABLE  
 WHERE instr(column, 'cats') > 0;

Ayrıca, akılda tutmak LIKEvaka olduğu duyarsız oysa instrvaka olduğu hassas .


13
Bu, minSdkVersion'ınızın 21 (5.0-Lollipop) olması gerektiği anlamına gelir
Maksim Turaev

1
@WilliamEntriken Kendi testimde instr(...)biraz daha hızlı (0.32s vs 0.34s). .timer onYürütme süresini ölçmek için SQLite'da kullanabilirsiniz .
Arnie97
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.