【问题标题】:How to change a column value to sub_string value of another column autoatically如何自动将列值更改为另一列的子字符串值
【发布时间】:2012-12-13 15:47:51
【问题描述】:
我的mysql表中有两列equipment和orderno,这里是手动插入的设备号,格式为C1234,C3212等。
我想从equipment 列中删除C,并将剩余的数字插入orderno 列。我已经看到 mysql substring_index() 可以有效地获取子字符串,但是当equipment 列更改时,我不确定如何使其自动进行更改。
【问题讨论】:
标签:
mysql
triggers
substring
【解决方案1】:
您可以使用两个触发器,一个在 INSERT 之前触发,一个在 UPDATE 之前触发,以根据 equipment 列自动更新 orderno:
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
【解决方案2】:
试试这个 ::
UPDATE myTable set orderno= REPLACE(equipment, 'C', '')