有一个表a,现在我想将a表中的ades列中字符串只截取数值部分,然后再插入到b表,看表结构:--创建a表
CREATE TABLE `a` (
`aid` int(11) DEFAULT NULL,
`ades` varchar(50) DEFAULT NULL
);
--创建b表
CREATE TABLE `b` (
`bid` int(11) DEFAULT NULL,
`bdes` decimal(20,8) DEFAULT NULL
);
--插入数据
INSERT INTO a VALUES(1,'0.5元/手');
INSERT INTO a VALUES(2,'52.666元/手');
INSERT INTO a VALUES(1,'100.2元/手');
INSERT INTO a VALUES(1,'5元/手');
INSERT INTO a VALUES(1,'3元/手');
INSERT INTO a VALUES(1,'88.9元/手');
mysql> select * from a;
+------+-------------+
| aid | ades |
+------+-------------+
| 1 | 0.5元/手 |
| 2 | 52.666元/手 |
| 1 | 100.2元/手 |
| 1 | 5元/手 |
| 1 | 3元/手 |
| 1 | 88.9元/手 |
+------+-------------+例如:0.5元/收只保留0.5,52.666元/手只保留52.666。
想显示成下面的形式:+------+-------------+
| aid | ades |
+------+-------------+
| 1 | 0.5 |
| 2 | 52.666 |
| 1 | 100.2 |
| 1 | 5 |
| 1 | 3 |
| 1 | 88.9 |
+------+-------------+
然后再复制到b表中,这个语句应该怎么写呢?
CREATE TABLE `a` (
`aid` int(11) DEFAULT NULL,
`ades` varchar(50) DEFAULT NULL
);
--创建b表
CREATE TABLE `b` (
`bid` int(11) DEFAULT NULL,
`bdes` decimal(20,8) DEFAULT NULL
);
--插入数据
INSERT INTO a VALUES(1,'0.5元/手');
INSERT INTO a VALUES(2,'52.666元/手');
INSERT INTO a VALUES(1,'100.2元/手');
INSERT INTO a VALUES(1,'5元/手');
INSERT INTO a VALUES(1,'3元/手');
INSERT INTO a VALUES(1,'88.9元/手');
mysql> select * from a;
+------+-------------+
| aid | ades |
+------+-------------+
| 1 | 0.5元/手 |
| 2 | 52.666元/手 |
| 1 | 100.2元/手 |
| 1 | 5元/手 |
| 1 | 3元/手 |
| 1 | 88.9元/手 |
+------+-------------+例如:0.5元/收只保留0.5,52.666元/手只保留52.666。
想显示成下面的形式:+------+-------------+
| aid | ades |
+------+-------------+
| 1 | 0.5 |
| 2 | 52.666 |
| 1 | 100.2 |
| 1 | 5 |
| 1 | 3 |
| 1 | 88.9 |
+------+-------------+
然后再复制到b表中,这个语句应该怎么写呢?
select aid,SUBSTRING_INDEX(ades,'元',1) from a;
+------+-------------+
| aid | ades |
+------+-------------+
| 1 | 0.5元/手 |
| 2 | 52.666公斤/手 |
| 1 | 100.2顿/手 |
| 1 | 5美金/手 |
| 1 | 3公斤/批 |
| 1 | 88.9克/批 |
+------+-------------+
那该怎么截取呢?