1

我的表中有 2 个字段:start_datetitle. start_date一片空白。 title包含这样的字符串:'治疗日期为 2012 年 11 月 12 日,在 ... '. I want to copy only the date intostart_date(from标题'字段。)

什么查询会这样做?谢谢你很配!

4

2 回答 2

0

你不能。Mysql 对正则表达式的支持只用在 where 部分。

您必须将其提取到其他东西(java、perl、ruby)中并在那里进行操作,或者您可以尝试使用定位、子字符串和其他字符串函数(但它们都不是正则表达式)

于 2013-11-09T17:11:49.517 回答
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' 子字符串之前的所有内容,第二个将返回最后一个空格 fount 之后的所有内容。

在此处查看小提琴。

我考虑了日/月/年格式的日期,如果是月/日/年,只需使用 '%m/%d/%Y'

于 2013-11-09T17:49:39.990 回答