2009-04-22 5 views
1

Ich habe eine Tabelle, Kontakte, die ein Dutzend Spalten oder so hat. Ich möchte jede Zeile identifizieren, in der mindestens eine Spalte einen regulären Ausdruck enthält. Ich frage mich, ob es möglich ist, so etwas zu tun:Kann ich mehrere Tabellenspalten in SQLite mit einem Platzhalter durchsuchen?

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

statt dessen:

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

Ist das möglich?

Antwort

1

Ich glaube nicht, dass das möglich ist. Vielleicht könnten Sie einen Trigger auf den Tisch setzen, um eine einzelne denormalisierte Spalte zu aktualisieren?

+0

Danke. Ich denke, du hast recht. Ich war in der Lage, die Abfrage in Python einfach genug zu konstruieren. – Tony

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

Interessant. Das ist nicht ganz das, was ich gesucht habe (ich habe 10+ Spalten für verschiedene Felder), aber das ist gut zu wissen. – Tony

0

Sie können wie folgt in zwei Spalten suchen.

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); 
Verwandte Themen