我希望有人能帮助我。我有一个有160000行的列。很多列值(permalinks)以“-2”结尾,这是不必要的,所以我想删除它们。但我不能让它工作。
我试着问了一下:
UPDATE wp_pods_cars
SET permalink = Replace(permalink,'-2','')
WHERE RIGHT( 'permalink' , 2 ) = '-2';
此查询似乎有效,但右边的()似乎有问题。可能它只能用于SELECT,而不能用于WHERE子句。
我在想Regex,但我也没能成功。我已经找不到适合我的情况的正则表达式。
最佳答案
列名周围有单引号,因此要比较where
子句中的常量字符串。更接近工作的版本是:
UPDATE wp_pods_cars
SET permalink = Replace(permalink,'-2','')
WHERE RIGHT(permalink, 2 ) = '-2';
但是,我会这样写:
UPDATE wp_pods_cars
SET permalink = LEFT(permalink, length(permalink) - 2)
WHERE permalink LIKE '%-2';
-2
可能出现在字符串的其他位置,您不希望删除所有出现的项。