我在mysql中有一個VARCHAR字段,日期用逗號分隔。就像這樣:Mysql將VARCHAR轉換爲使用REGEX的日期
"10/20/2011,10/21/2011,10/22/2011"
我需要使用WHERE條件是這樣的:
where `date` > '10/10/2011'
所以我的問題基本上是如何,我可以使用(也許)正則表達式來檢索第一次約會在我的領域(我只需要第一個)並將where條件應用於它?
我在mysql中有一個VARCHAR字段,日期用逗號分隔。就像這樣:Mysql將VARCHAR轉換爲使用REGEX的日期
"10/20/2011,10/21/2011,10/22/2011"
我需要使用WHERE條件是這樣的:
where `date` > '10/10/2011'
所以我的問題基本上是如何,我可以使用(也許)正則表達式來檢索第一次約會在我的領域(我只需要第一個)並將where條件應用於它?
這將讓只有第一部分,逗號,
前:
SUBSTRING_INDEX(varcharField, ',' , 1)
然後,您需要將其轉換成date
格式:
STR_TO_DATE(SUBSTRING_INDEX(varcharField, ',', 1), '%m/%d/%Y')
正如你已經被告知,存儲逗號分隔列表是一個壞主意。但很多時候,這不在你的工作職責或重組表格的能力之內。
我認爲你應該查閱全文索引和匹配。這將允許在一個字段內搜索。很遺憾,只能在MyISAM表格上使用。
你從哪種技術調用MySQL? –
您不應該在一個單元中存儲逗號分隔列表。我認爲你應該重組你的數據庫並添加一個表格,因爲你似乎在這裏有'多對多'的關係。 – Paulpro