我在表pictures
中有2个表,一个是已命名的图片,另一个是已命名的媒体,我有一个包含一些文本的字段description
,在表media
中有一行{{ 1}}我想更新。我需要编写一个sql查询来更新表媒体中的行url
,该表媒体使用正则表达式来自表url
中的description
中的特定字符串,这可以通过一个SQL查询来完成吗?
答案 0 :(得分: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$';
如果您只需要替换部分网址,可以尝试:
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$';