テーブルに と の 2 つのフィールドがstart_date
ありtitle
ます。
start_date
無効です。
title
次のような文字列が含まれます: 「2012 年 11 月 12 日の日付での治療、... '.
I want to copy only the date into
start_date(from
タイトル」フィールド。)
どのクエリがそれを行いますか? ありがとうございます!
できません。Mysql の regexp のサポートは、where 部分でのみ使用されます。
それを別のもの (java、perl、ruby) に抽出してそこで操作するか、locate、substring、およびその他の文字列関数を使用する必要があります(ただし、いずれも正規表現ではありません)。
正規表現に対する 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' を使用します。