1

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

假设我有此表的列名 Person、ID、Phone Number、Alt Number:

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

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

800-499-0000 | 800-499-5555

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

任何帮助或确认表示赞赏。

4

1 回答 1

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
于 2013-04-25T16:43:19.830 回答