1

テーブルに と の 2 つのフィールドがstart_dateありtitleます。 start_date無効です。 title次のような文字列が含まれます: 「2012 年 11 月 12 日の日付での治療、... '. I want to copy only the date intostart_date(fromタイトル」フィールド。)

どのクエリがそれを行いますか? ありがとうございます!

4

2 に答える 2

0

できません。Mysql の regexp のサポートは、where 部分でのみ使用されます。

それを別のもの (java、perl、ruby) に抽出してそこで操作するか、locate、substring、およびその他の文字列関数を使用する必要があります(ただし、いずれも正規表現ではありません)。

于 2013-11-09T17:11:49.517 に答える
0

正規表現に対する MySQL のサポートは非​​常に限られていますが、タイトル列の形式がほぼ固定されていて、日付の後に常に ', at ...' が続く場合は、STR_TO_DATEを 2 つのSUBSTRING_INDEXと組み合わせて使用​​できます。

UPDATE yourtable
SET start_date = STR_TO_DATE(
      SUBSTRING_INDEX(SUBSTRING_INDEX(title, ', at', 1), ' ', -1), '%d/%m/%Y')

最初の SUBSTRING_INDEX は最初の ', at' 部分文字列より前のすべてを返し、2 番目の SUBSTRING_INDEX は最後のスペース フォントの後のすべてを返します。

ここでフィドルを参照してください。

日/月/年の形式で日付を考えました。月/日/年の場合は、'%m/%d/%Y' を使用します。

于 2013-11-09T17:49:39.990 に答える