如何更新列值从左开始只使用几个词MySQL



表结构

╔════╦════════════════════════════════════════════╗
║ id ║ url                                        ║
╠════╬════════════════════════════════════════════╣
║ 1  ║ http://example.com/path1/path2/path3/name1 ║
╠════╬════════════════════════════════════════════╣
║ 2  ║ http://example.com/path1/path2/path3/name2 ║
╠════╬════════════════════════════════════════════╣
║ 3  ║ http://example.com/path1/path2/path3/name3 ║
╚════╩════════════════════════════════════════════╝

因此,我试图用该路径截断所有url前缀(例如:http://example.com/path1/path2/path3/),以便在末尾留下名称,如:name1name2名称3

我认为这个查询可以正常工作,但我认为它会更改该列中的所有值。

UPDATE `table` SET `url` WHERE LEFT (`url`, 37) = 'http://example.com/path1/path2/path3/'

我想要的是剪掉url路径的前面,在末尾留下名称

我尝试使用此查询,但查询在SET查询之后从LEFT开始时出错。

UPDATE `table` SET LEFT(url, 37) = '' WHERE LEFT(`url`, 37) = 'http://example.com/path1/path2/path3/'

如何做到这一点?

使用最简单的

UPDATE `table` 
SET url = TRIM(LEADING 'http://example.com/path1/path2/path3/' FROM url)

如果该值从指定的子字符串开始,它将被修剪,否则该值将不会更改。

最新更新