我的“车辆”表中有一个“模型”字段(条目少于59,000),其值可能类似于:
Roadline (09-14)
如果要删除(XX-XX),我想删除它,并在字段名称中填写“已处理”值。
任何帮助将不胜感激!
答案 0 :(得分:1)
一个非常简单的解决方案是使用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