我的表中有 2 个字段:start_date
和title
.
start_date
一片空白。
title
包含这样的字符串:'治疗日期为 2012 年 11 月 12 日,在 ... '.
I want to copy only the date into
start_date(from
标题'字段。)
什么查询会这样做?谢谢你很配!
你不能。Mysql 对正则表达式的支持只用在 where 部分。
您必须将其提取到其他东西(java、perl、ruby)中并在那里进行操作,或者您可以尝试使用定位、子字符串和其他字符串函数(但它们都不是正则表达式)
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' 子字符串之前的所有内容,第二个将返回最后一个空格 fount 之后的所有内容。
请在此处查看小提琴。
我考虑了日/月/年格式的日期,如果是月/日/年,只需使用 '%m/%d/%Y'