2009-04-22 73 views
1

我有一个表,联系人,有十几列左右。我想识别每行至少有一列包含正则表达式。我不知道是否有可能做这样的事情:我可以使用通配符在SQLite中搜索多个表列吗?

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

,而不是这样的:

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

这可能吗?

回答

1

我不认为这是可能的。也许你可以在表上放置一个触发器来更新一个非正规化列?

+0

谢谢。我想你是正确的。我能够很容易地用Python构建查询。 – Tony 2009-04-22 15:38:46

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

有趣。这不是我正在寻找的东西(我有10列以上的各个领域),但这是很好的知道。 – Tony 2009-04-23 12:25:56

0

您可以像这样在两列中搜索。

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); 
相关问题