【发布时间】:2023-03-24 05:45:01
【问题描述】:
MySQL数据库版本为5.5.62
这是我的桌子
mysql> SELECT * FROM `dotablenew`;
+-----+-------------+
| sID | sStringNew |
+-----+-------------+
| 1 | D1080 ARE A |
| 2 | D5258 SEG |
| 3 | D0749 COR |
| 4 | D4278 VAI |
| 5 | D2664 PON |
+-----+-------------+
5 rows in set
我需要这个回报
+-------+------+
| sOne | sTwo |
+-------+------+
| D1080 | ARE |
| D5258 | SEG |
| D0749 | COR |
| D4278 | VAI |
| D2664 | PON |
+-------+------+
我已经尝试过这个解决方案
mysql> SELECT
SUBSTRING_INDEX(sStringNew, ' ', 1) AS sOne,
SUBSTRING_INDEX(sStringNew, ' ', - 1) AS sTwo
FROM
`dotablenew`;
+-------+------+
| sOne | sTwo |
+-------+------+
| D1080 | A |
| D5258 | SEG |
| D0749 | COR |
| D4278 | VAI |
| D2664 | PON |
+-------+------+
5 rows in set
没有成功,因为第一行错误
+-------+------+
| sOne | sTwo |
+-------+------+
| D1080 | A |
+-------+------+
我真的不知道字符串 sStringNew 中可以有多少个空格,但我总是需要提取字符串 sStringNew 的前两个元素,以空格分隔。 ..
如何解决这个问题?
请给点建议
下面是我的桌子
DROP TABLE IF EXISTS `dotablenew`;
CREATE TABLE `dotablenew` (
`sID` int(11) NOT NULL AUTO_INCREMENT,
`sStringNew` varchar(255) DEFAULT NULL,
PRIMARY KEY (`sID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of dotablenew
-- ----------------------------
INSERT INTO `dotablenew` VALUES ('1', 'D1080 ARE A');
INSERT INTO `dotablenew` VALUES ('2', 'D5258 SEG');
INSERT INTO `dotablenew` VALUES ('3', 'D0749 COR');
INSERT INTO `dotablenew` VALUES ('4', 'D4278 VAI');
INSERT INTO `dotablenew` VALUES ('5', 'D2664 PON');
【问题讨论】:
-
没见过有人解释得这么好。