MySQL如何只选择其中包含字符串的列
问题描述:
我做了一些搜索,并且已经发布在stackexchange上的一个问题,答案是这是不可能的,但我想要问。我不知道是否有可能形成SELECT查询来动态选择将在mysql SELECT语句结果中显示的列。例如:MySQL如何只选择其中包含字符串的列
说我有列名的人,ID,电话号码,Alt键Number此表:
John | 79 | 800-499-0000 | 800-499-5555
我想形成一个SELECT语句,以便它只会下拉列其中字符串'800-499'在该领域的某处。因此,从MySQL结果理想是:
800-499-0000 | 800-499-5555
唯一的问题是,我不认为动态选择列是可能的。
任何帮助或确认表示赞赏。
答
您可以尝试类似:
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
不,这不是可能有一个结果变量列。请问你想用它解决什么问题? – Quassnoi 2013-04-25 16:34:08
好吧,有一个巨大的表,有很多列,所以到我需要的领域是一种痛苦。能够仅获取携带信息子字段的列将会很有帮助,因此我不必遍历所有其他列来找到我想要的列。 – jcsbrotha 2013-04-25 16:36:40
@jcsbrotha:但是如果匹配列与要记录的记录不同? – eggyal 2013-04-25 16:37:10