私は3つのテーブルを持っています。テンプレートに続くテーブルのすべての行を見つける方法は?
テーブルタグ
id tag_name tag
1 date [0-9]+([\.:;\-\/ ]?(ЪЬЪЬ)?[0-9]+[\.:;\-\/ ]?(ЪЬЪЬ)?)+
2 text (.*)
テーブルメッセージ
id group_number msg id_template
1 2 some text 25.06.2016 some more text 0
テーブルテンプレート{テキスト}は、任意の日付を置き換えることができ、MSGと{日付}の任意のテキストを置き換えることができ
id group_number tag_text
1 2 some{text} {date} {text}
msg。
この場合、ID 1のメッセージはID 1のテンプレートに従いますが、メッセージとテンプレートは多数あります。
したがって、template.tag_textの後に続くすべてのmessage.msgに対して、message.id_template template.idに挿入します。
SQLではやや
update message
set message.id_template = template.id
where message.msg like 'template.tag_text'
ようになっているはずですが、私は{日付}と{テキスト}に対処する方法がわからない、この
some text 25.06.2016 some more text
この
理由some{text} {date} some more {text}
は異なると見なされます。
ただSQLで可能ですか?
update message m join
template t
on m.msg regexp t.tag_text
set m.id_template = t.id;
注:
MySQLのREGEXTはバイトで動作します。キリル文字で「間違ったことをする」ことはまずありません。 –