【问题标题】:Use SUBSTRING_INDEX syntax on MySQL database version 5.5.62在 MySQL 数据库版本 5.5.62 上使用 SUBSTRING_INDEX 语法
【发布时间】: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');

【问题讨论】:

  • 没见过有人解释得这么好。

标签: mysql string substring


【解决方案1】:
SELECT sStringNew, 
    SUBSTRING_INDEX(sStringNew, ' ', 1) AS sOne,
    SUBSTRING_INDEX(SUBSTRING_INDEX(sStringNew, ' ',  2), ' ', -1) AS sTwo
FROM
    `dotablenew`

【讨论】:

  • 比我的答案更好。
【解决方案2】:

试试这个:

SELECT
    SUBSTRING_INDEX(sStringNew, ' ', 1) AS sOne,
    REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(sStringNew, ' ', 2)), ' ', 1)) AS sTwo
FROM
    `dotablenew`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2021-04-07
    • 1970-01-01
    • 2013-10-31
    • 2013-08-11
    • 2011-01-28
    相关资源
    最近更新 更多