使用存在于所有列中的关键字(SQL)选择数据



我在一个搜索面板上工作,我想选择所有列中有这个特定关键字的所有数据。

通常,如果你想选择一些东西,它像这样:

SELECT * FROM TableName WHERE columnName = "%as%";

但是这只显示在我指定的列中有"as"的数据,我想从所有包含该关键字的列中选择所有数据

我希望这样:

SELECT * FROM TableName WHERE <any column> = "%as%";

如果存在这样的东西,请告诉我。谢谢。

你可以使用这个技巧

   select 
    mytable.* , FROM mytable
JOIN
( 
    select 
      id, 
      IFNULL(col1,'')+IFNULL(col2,'')+...+IFNULL(colN,'') concatenated
      FROM mytable
) T ON T.Id = mytable.Id
where   t.concatenated like '%x%'

这将连接所有的列在一个列,你可以选择在这个结果

你可以这样做:

SELECT * FROM TableName 
WHERE Col1 LIKE '%as%'
   OR Col2 LIKE '%as%'
   OR Col3 LIKE '%as%'
   OR Col4 LIKE '%as%'
   OR Col5 LIKE '%as%'

最新更新