我做了一些搜索,并从已经发布在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
唯一的问题是我不认为可以动态选择列。
感谢任何帮助或确认。
答案 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