我在mysql中有一个VARCHAR字段,日期用逗号分隔。像这样:
"10/20/2011,10/21/2011,10/22/2011"
我需要使用像这样的WHERE条件:
where `date` > '10/10/2011'
所以我的问题基本上是如何使用(可能)正则表达式来检索我的字段中的第一个日期(我只需要第一个日期)并将where条件应用于它?
答案 0 :(得分:1)
这将只包含逗号,
之前的第一部分:
SUBSTRING_INDEX( varcharField, ',' , 1)
然后,您需要将其转换为date
格式:
STR_TO_DATE( SUBSTRING_INDEX(varcharField, ',', 1), '%m/%d/%Y')
答案 1 :(得分:0)
正如您已经被告知的那样,存储以逗号分隔的列表是一个坏主意。但很多时候,这不属于你的工作职责或重组表格的能力。
我认为你应该查看全文索引和匹配。这将允许在字段内进行搜索。可悲的是只能在MyISAM表上使用。