2013-04-25 66 views
1

我做了一些搜索,並且已經發布在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

唯一的問題是,我不認爲動態選擇列是可能的。

任何幫助或確認表示讚賞。

+1

不,這不是可能有一個結果變量列。請問你想用它解決什麼問題? – Quassnoi 2013-04-25 16:34:08

+0

好吧,有一個巨大的表,有很多列,所以到我需要的領域是一種痛苦。能夠僅獲取攜帶信息子字段的列將會很有幫助,因此我不必遍歷所有其他列來找到我想要的列。 – jcsbrotha 2013-04-25 16:36:40

+1

@jcsbrotha:但是如果匹配列與要記錄的記錄不同? – eggyal 2013-04-25 16:37:10

回答

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 
+0

這是使DBA哭泣的那種查詢。使用像[Solr](http://lucene.apache.org/solr/)這樣的搜索引擎可以更好地衡量kabillion時間。 – tadman 2013-04-25 16:45:13

+0

@tadman:Solr可以用來對付MySQL數據庫嗎? – 2013-04-25 16:47:42

+0

簡短回答:[是](http://stackoverflow.com/questions/4604393/using-solr-with-mysql)。 – tadman 2013-04-25 16:49:58

相關問題