Mysql使用正则表达式将VARCHAR转换为日期

Mysql使用正则表达式将VARCHAR转换为日期,mysql,Mysql,我在mysql中有一个VARCHAR字段,日期用逗号分隔。像这样: "10/20/2011,10/21/2011,10/22/2011" 我需要使用这样的WHERE条件: where `date` > '10/10/2011' 因此,我的问题基本上是如何使用(可能)regex检索字段中的第一个日期(我只需要第一个)并对其应用where条件?这将只获取逗号前面的第一部分,: SUBSTRING_INDEX( varcharField, ',' , 1) 然后需要将其转换为日期格式: S

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

"10/20/2011,10/21/2011,10/22/2011"
我需要使用这样的WHERE条件:

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

因此,我的问题基本上是如何使用(可能)regex检索字段中的第一个日期(我只需要第一个)并对其应用where条件?

这将只获取逗号前面的第一部分

SUBSTRING_INDEX( varcharField, ',' , 1)
然后需要将其转换为
日期
格式:

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

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


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

您从什么技术调用MySQL?您不应该在单个单元格中存储逗号分隔的列表。我认为您应该重新构建数据库并添加一个表,因为这里似乎有一个
多对多
关系。