0

私は 2 つのテーブルを持っています。1 つは pictures という名前で、もう 1 つは media という名前です。テーブルには、いくつかのテキストを含むpicturesフィールドがあります。テーブルには、更新したい行があります。from tableの特定の文字列に対して正規表現を使用するテーブル media の行を更新する sql クエリを作成する必要があります。これは 1 つの sql クエリで実行できますか?descriptionmediaurlurldescriptionpictures

4

1 に答える 1

2

REGEXPを使用して文字列を検索することはできますが、結果を返すことはできません。それでよければ、次のようなことを試すことができます。

テーブルが次のようなものである場合:

create table media(media_id int, url varchar(200));
create table pictures(pic_id int, media_id int, description text);

あなたはこのようなことをすることができます:

UPDATE pictures p
LEFT JOIN media m 
ON p.media_id = m.media_id
SET url='http://newurl.com/pic.jpg'
WHERE REGEXP '.*regexpString$';

URLの一部を置き換える必要がある場合は、次のことを試すことができます。

UPDATE pictures p
LEFT JOIN media m 
ON p.media_id = m.media_id
SET url=REPLACE(url, 'olddomain.com', 'newdomain.com')
WHERE REGEXP '.*regexpString$';
于 2013-01-18T06:26:36.930 に答える