Mysql使用REGEX将VARCHAR转换为日期

时间:2011-07-21 23:41:34

标签: mysql

我在mysql中有一个VARCHAR字段,日期用逗号分隔。像这样:

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

我需要使用像这样的WHERE条件:

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

所以我的问题基本上是如何使用(可能)正则表达式来检索我的字段中的第一个日期(我只需要第一个日期)并将where条件应用于它?

2 个答案:

答案 0 :(得分:1)

这将只包含逗号,之前的第一部分:

SUBSTRING_INDEX( varcharField, ',' , 1)

然后,您需要将其转换为date格式:

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

答案 1 :(得分:0)

正如您已经被告知的那样,存储以逗号分隔的列表是一个坏主意。但很多时候,这不属于你的工作职责或重组表格的能力。

我认为你应该查看全文索引和匹配。这将允许在字段内进行搜索。可悲的是只能在MyISAM表上使用。