我的表格中有两个字段:start_date
和title
。
start_date
为NULL。
title
包含如下字符串:'日期为2012年12月12日的处理,位于... '.
I want to copy only the date into
start_date (from
title`字段。)
什么查询会这样做? 谢谢你非常匹配!
答案 0 :(得分:0)
你做不到。 Mysql对regexp的支持仅用于where-part。
你必须将它提取到其他东西(java,perl,ruby)并在那里操作它,或者你可以尝试使用locate, substring and other string functions(但它们都不是regexp)
答案 1 :(得分:0)
MySQL对正则表达式的支持非常有限,但是如果你的标题栏的格式几乎是固定的,并且日期总是后跟',at ...',你可以将STR_TO_DATE与两个结合使用SUBSTRING_INDEX:
UPDATE yourtable
SET start_date = STR_TO_DATE(
SUBSTRING_INDEX(SUBSTRING_INDEX(title, ', at', 1), ' ', -1), '%d/%m/%Y')
第一个SUBSTRING_INDEX将返回第一个',at'子字符串之前的所有内容,第二个SUBSTRING_INDEX将返回最后一个空格数后的所有内容。
请参阅小提琴here。
我以日/月/年的格式考虑日期,如果是月/日/年,则只使用'%m /%d /%Y'