我有 2 个表,一个命名图片和另一个命名媒体,在表中pictures
我有description
包含一些文本的字段,在表中media
有url
我想更新的行。我需要编写一个 sql 查询来更新表媒体中的行,该查询对表url
中的特定字符串使用正则表达式,这可以通过一个 sql 查询来完成吗?description
pictures
问问题
4260 次
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 回答