【问题标题】:MySQL: extracting the first, second and third word from a string (or varchar field) [duplicate]MySQL:从字符串(或varchar字段)中提取第一个,第二个和第三个单词[重复]
【发布时间】:2019-07-09 10:33:36
【问题描述】:

如何在 MySQL 的 varchar 字段中提取 firstsecond 单词?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    只需使用 SUBSTRING_INDEX (official MySQL documentation, official MariaDb Documentation)

    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`;
    

    credits to this guy

    【讨论】:

    • 情况越来越糟,现在w3fools 的屏幕截图正在被包括在内。如果要包括的内容引用official documentation..跨度>
    • @RaymondNijland:这个答案有点苛刻。我认为这是一个偏好问题。在我看来,进化将是共享这个地方越来越多地减少用户的工作量。
    • 保护您免受可能的反对票,w3schools 在这里有一个负面的声誉是有充分理由的。而且 w3schools 的文档也永远不会像官方的供应商文档那么好,我很确定我们是否会搜索我们仍然在那里找到错误/不合逻辑的东西。
    • @RaymondNijland:谢谢,我不知道。让我检查一下其他来源。
    • “让我检查一下其他来源。”检查我的第一条评论...
    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多