2011-07-21 47 views
0

我在mysql中有一個VARCHAR字段,日期用逗號分隔。就像這樣:Mysql將VARCHAR轉換爲使用REGEX的日期

"10/20/2011,10/21/2011,10/22/2011" 

我需要使用WHERE條件是這樣的:

where `date` > '10/10/2011' 

所以我的問題基本上是如何,我可以使用(也許)正則表達式來檢索第一次約會在我的領域(我只需要第一個)並將where條件應用於它?

+0

你從哪種技術調用MySQL? –

+1

您不應該在一個單元中存儲逗號分隔列表。我認爲你應該重組你的數據庫並添加一個表格,因爲你似乎在這裏有'多對多'的關係。 – Paulpro

回答

1

這將讓只有第一部分,逗號,前:

SUBSTRING_INDEX(varcharField, ',' , 1) 

然後,您需要將其轉換成date格式:

STR_TO_DATE(SUBSTRING_INDEX(varcharField, ',', 1), '%m/%d/%Y') 
0

正如你已經被告知,存儲逗號分隔列表是一個壞主意。但很多時候,這不在你的工作職責或重組表格的能力之內。

我認爲你應該查閱全文索引和匹配。這將允許在一個字段內搜索。很遺憾,只能在MyISAM表格上使用。

相關問題