MySQL如何仅选择值包含字符串的列

时间:2013-04-25 16:32:44

标签: mysql

我做了一些搜索,并从已经发布在stackexchange上的一个问题,答案是它不可能,但我想问。我不知道是否可以形成一个SELECT查询来动态选择将在mysql SELECT语句结果中显示哪些列。例如:

说我有列名称Person,ID,Phone Number,Alt table for this table:

John | 79 | 800-499-0000 | 800-499-5555

我想形成一个SELECT语句,这样它只会拉下字符串'800-499'在字段中某处的列。因此,理想情况下MySQL的结果将是:

800-499-0000 | 800-499-5555

唯一的问题是我不认为可以动态选择列。

感谢任何帮助或确认。

1 个答案:

答案 0 :(得分:1)

可以尝试类似:

select * from
(select concat(case when col1 like '%800-499-0000%' then concat('col1: ',col1,';') end,
               case when col2 like '%800-499-0000%' then concat('col2: ',col1,';') end,
 ...
               case when coln like '%800-499-0000%' then concat('coln: ',coln,';') end)
        as search_results
 from my_table) sq
where search_results is not null