如何自动将列值更改为另一列的子串值

时间:2012-12-28 10:59:07

标签: mysql triggers substring

我的mysql表中有两列equipmentorderno,此处设备编号是手动插入的,它们的格式为C1234C3212等。

我想从C列中删除equipment并将剩余的数字插入orderno列。我已经看到mysql substring_index()可以有效地获取子字符串但我不确定当equipment列发生更改时如何自动进行更改。

2 个答案:

答案 0 :(得分:1)

您可以使用两个触发器,一个在INSERT之前触发,另一个在UPDATE之前触发,根据orderno列自动更新equipment

CREATE TRIGGER upd_your_table BEFORE UPDATE ON your_table 
FOR EACH ROW
  SET new.orderno=substring(new.equipment, 2)
;
CREATE TRIGGER ins_your_table BEFORE INSERT ON your_table 
FOR EACH ROW
  SET new.orderno=substring(new.equipment, 2)
;

要更新现有值,您可以使用:

UPDATE your_table SET orderno=substring(equipment, 2)

See this fiddle

答案 1 :(得分:1)

试试这个::

UPDATE myTable set orderno= REPLACE(equipment, 'C', '')