2009-04-22 7 views
1

J'ai une table, des contacts, qui a une douzaine de colonnes ou plus. Je veux identifier chaque ligne dans laquelle au moins une colonne contient une expression régulière. Je me demande s'il est possible de faire quelque chose comme ceci:Puis-je rechercher plusieurs colonnes de table dans SQLite à l'aide d'un caractère générique?

select * from contacts where * like '%re%'; 

au lieu de ceci:

select * from contacts where last_name like '%re%' or first_name like '%re%' or ... ; 

Est-ce possible?

Répondre

1

Je ne pense pas que ce soit possible. Peut-être pourriez-vous mettre un déclencheur sur la table pour mettre à jour une seule colonne dénormalisée?

+0

Merci. Je pense que tu as raison. J'ai été capable de construire la requête en Python assez facilement. – Tony

3
select * from contacts where concat(last_name, ' ', first_name) like '%re%' 
+0

Intéressant. Ce n'est pas tout à fait ce que je cherchais (j'ai plus de 10 colonnes pour différents domaines), mais c'est bon à savoir. – Tony

0

Vous pouvez utiliser comme ceci pour effectuer une recherche dans deux colonnes.

String query = "select * from SomeTable 
      where (column1 like ? and column2 like ?) and column3 like ?"; 
String[] params = {"%" + param1 + "%", "%" + param2 + "%", "%" + param3 + "%"}; 
Cursor c = db.rawQuery(query, params); 
Questions connexes