sqlite android select col(x)其中(col1喜欢'%key%')或(col2喜欢'%key%') - 而x是columnt包含键

时间:2013-11-12 20:23:48

标签: android sql sqlite select

我需要sql语句是这样的:

选择col(x)其中(col1喜欢'%key%')或(col2喜欢'%key%')或.... - x是包含键(patern)的列。

更确切地说,我有一个包含文本列col1,col2,col3,col4等的表。

现在我希望在所有这些列中找到给定的模式(比如)。但是,由于选择的结果,我想获得已找到模式的列内容(在我的“语句”中,我将其标记为col(x)。

如果同一语句的两列或多列包含相同的模式,那么未解决的问题是什么。然后例如我可以得到类似col(x),col(y)的东西,但它不是必须的。任何其他合理的解决方案都是受欢迎的。

问题是如何写出我需要的这样一个声明?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用CASE expression搜索列:

SELECT CASE WHEN col1 LIKE :pattern THEN col1
            WHEN col2 LIKE :pattern THEN col2
            ...
       END AS colx
FROM MyTable
WHERE col1 LIKE :pattern OR col2 LIKE :pattern OR ...