查询更新56k字段的问题

时间:2017-06-01 09:14:05

标签: mysql

我有一个简单的MYSQL更新查询 -

UPDATE Aircraft
SET Type = replace(Type, 'A319 *', 'A319-*');

当前数据类似于 A319 111
A319 131
A320 211
A320 214

我希望将其调整为
A319-111
A319-131
A320-211
A320-214

我知道这很简单,但我无法弄清楚!

来自评论:

  

它的所有空客和波音飞机,从A319到A380,从B707到B787

3 个答案:

答案 0 :(得分:2)

此处的一种解决方法是通过构建要用作替换的字符串来更新Type列。这将是前四个字符,例如'A319',后跟短划线,后跟原始列的第六个到最后一个字符。

UPDATE Aircraft
SET Type = CONCAT(SUBSTRING(Type, 1, 4),
                  '-',
                  SUBSTRING(Type, 6))
WHERE Type REGEXP 'A[0-9][0-9][0-9]'

答案 1 :(得分:1)

UPDATE Aircraft
SET Type = replace(Type, 'A319', 'A319-') WHERE Type LIKE 'A319%';
UPDATE Aircraft
SET Type = replace(Type, 'A320', 'A320-') WHERE Type LIKE 'A320%';

答案 2 :(得分:0)

我不知道你的其他数据是怎么回事,但我想你会搜索这个?

UPDATE Aircraft
SET Type = REPLACE( type, ' ',  '-')
WHERE type LIKE 'A3%'

并替换所有空格。 或者您有更多数据示例?