2010-09-08 20 views

cevap

33

Yepper, Gibi kullanın. Select id from sometable where name like '%omm%', ad sütununun herhangi bir yerinde "omm" olan herhangi bir satırı döndürür.

+0

'daki SQLite API'sini kullanarak, dize aslında "%" karakterini içeriyorsa. SQLite bu durumda ne yapar? –

+4

Bir çıkış karakterini tanımlamanıza olanak tanıyan bir ESCAPE anahtar sözcüğü var, böylece% veya _ üzerinde sorgulayabilirsiniz. Bkz. Http://www.sqlite.org/lang_expr.html Yani "my name from id adından '% somename \ %%' escape '\' – GrandmasterB

+1

uyarı gibi bir şey yaparsınız: uyarı bu büyük harf duyarsızdır. – Bren

12

Sen can kullanım LIKE, ama alır gerçekten yavaş eğer '%' ile başlar aradığınız deseni - yani aradığınız alt dize başında mutlaka değilse alan.

Bu tür aramalar yapmanız gerekiyorsa, tam metin aramayı önemli ölçüde daha verimli yapan FTS3 kullanmayı düşünün.

+0

İlginç, kullanım için çok fazla iş var FTS3? SQLite API ile birlikte kullanılabilir mi? –

+0

@ Tommy: Bakış açınızdan ne kadar çok nitelik kazanacağından emin değilim .. Evet, C API'sından kullanılabilir. –

+1

FTS uzantısı SQLite dağıtımında bulunur. Dokümanları okumalı ve yapım aşamasında açmalısınız. Onun büyüsüyle çalıştığı ihmal edilemez boyutta bir endeks oluşturacağını unutmayın ... – RBerteig

İlgili konular