mysql中怎样截取字符串中数值
有一个表a,现在我想将a表中的ades列中字符串只截取数值部分,然后再插入到b表,看表结构:
- SQL code
--创建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表中,这个语句应该怎么写呢?
[解决办法]
试试substring_index(ades,'元',1)
[解决办法]
- SQL code
insert into bselect aid,SUBSTRING_INDEX(ades,'元',1) from a;
[解决办法]
select aid,ades+0 from a;
[解决办法]
楼上正解~