0

我有 2 个表,一个命名图片和另一个命名媒体,在表中pictures我有description包含一些文本的字段,在表中mediaurl我想更新的行。我需要编写一个 sql 查询来更新表媒体中的行,该查询对表url中的特定字符串使用正则表达式,这可以通过一个 sql 查询来完成吗?descriptionpictures

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 回答