MySQL - 单表内多列的单一标准 - MySQL

时间:2014-05-15 03:26:45

标签: mysql sql select

感谢您创建此查询的任何帮助。我将举例说明我想做什么。我有一个表(名为t1),结构类似于以下内容:

id   f_name   l_name   address
----------------------------------
 1   alpha    beta     city phi
 2   gamma    beta     city beta
 3   alpha    lambda   city sigma
 4   beta     omega    city beta

我想找到包含预定标准的数据。这些标准适用于表中的所有列。

例如,我想在表格中找到包含“beta”字样的数据。我之前使用过这个查询,但没有用。

SELECT * 
FROM t1 
WHERE id LIKE '%criteria%' 
   OR f_name LIKE '%criteria%' 
   OR l_name LIKE '%criteria%'

我想我需要进行某种子查询。但真的不知道该怎么办,谢谢。

2 个答案:

答案 0 :(得分:0)

因为对你来说无关紧要,哪一列满足你的标准,我能看到的最简单的方法是连接所有列,如下所示:

SELECT *
FROM t1
WHERE CONCAT(id, f_name, l_name, .....) LIKE '%criteria%'

上述查询等同于使用OR运算符指定多个LIKE条件。 此外,如果您的列具有不同的数据类型,它将避免错误,因为CONCAT进行自动转换

答案 1 :(得分:0)

您好我重新创建了您的数据表和执行错误的语句。 我想你可能只是在某处出现拼写错误。