我的表vehicles中有一个字段“model”(只有不到59000个条目),其值可能如下所示:
Roadline (09-14)
如果存在(xx xx),我想删除它,并将“treated”值填入字段modelname。任何帮助都将不胜感激!
5f0d552i1#
一个非常简单的解决方案是 SUBSTRING_INDEX 把之前的部分隔离 ( . 你可以用 REGEXP 以确保模式匹配,但不幸的是,您不能使用它来捕获匹配。
SUBSTRING_INDEX
(
REGEXP
SELECT model, CASE WHEN model REGEXP '\\([0-9]+-[0-9]+\\)$' THEN SUBSTRING_INDEX(model, '(', 1) ELSE model END AS modelname FROM vehicles
确保数据看起来正常后,可以像这样更新另一列:
UPDATE vehicles SET modelname = CASE WHEN model REGEXP '\\([0-9]+-[0-9]+\\)$' THEN SUBSTRING_INDEX(model, '(', 1) ELSE model END
1条答案
按热度按时间5f0d552i1#
一个非常简单的解决方案是
SUBSTRING_INDEX
把之前的部分隔离(
. 你可以用REGEXP
以确保模式匹配,但不幸的是,您不能使用它来捕获匹配。确保数据看起来正常后,可以像这样更新另一列: