表结构
╔════╦════════════════════════════════════════════╗
║ 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/),以便在末尾留下名称,如:name1、name2和名称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)
如果该值从指定的子字符串开始,它将被修剪,否则该值将不会更改。