我有一个名为cartypes的表,目前有2个字段:id&类型。我正在添加子类型,我想从名为type的字段中移动破折号-
之后的内容,并将这些内容放入子类型中。处理破折号(任何额外的空白也是如此)。什么是最好的SQL查询?
之前:
id type subtype (currently empty)
------------------------------------------------------------------------------
1 legendary muscle car - steel
2 crappy sedan - plasticky interior
3 legendary sports car - aluminum bodywork
4 compact car
后:
id type subtype
---------------------------------------------------------------
1 legendary muscle car steel
2 crappy sedan plasticky interior
3 legendary sports car aluminum bodywork
4 compact car
答案 0 :(得分:2)
UPDATE table
SET subtype = TRIM(SUBSTRING(type, LOCATE('-', type) + 1)),
type = TRIM(SUBSTRING(type, 1, LOCATE('-', type) - 1))
WHERE type LIKE '%-%';
答案 1 :(得分:1)
这是一个更新语句,涉及两个SUBSTR()(每个新列一个)和原始列上的字符串LOCATE()。我并没有真正使用MySQL,但这个技巧无处不在,只是字符串查找例程的语法发生了变化。