首页 > 解决方案 > MySQL:从字符串(或 varchar 字段)中提取第一个、第二个和第三个单词

问题描述

如何在MySQL的 varchar 字段中提取第一个第二个单词?

标签: mysql

解决方案


只需使用 SUBSTRING_INDEX(官方 MySQL 文档官方 MariaDb 文档

SELECT Substring_index(`sentence`, ' ', 1)                           AS first_word, 
       Substring_index(Substring_index(`sentence`, ' ', 2), ' ', -1) AS second_word,
       Substring_index(Substring_index(`sentence`, ' ', 3), ' ', -1) AS third_word 
FROM   `test` 

https://www.db-fiddle.com/f/iSGActpsMNzhZe13W2QA3q/1

使用此解决方案也可以使其更通用:

SET @N = 3; --3rd word
SET @delimiter = ' ';
SELECT
  SUBSTRING_INDEX(SUBSTRING_INDEX(`sentence`, @delimiter, @N), @delimiter, -1)
FROM
  `test`;

归功于这个人


推荐阅读