假设MySQL数据库中有一个表,其中有两列first_stringsecond_string
first_string包含以下句子:Hello! This is my first test. I like this test.
我想获取分隔符mytest之间的所有值(包括分隔符本身),并将其插入second_string中。
所以second_string应该是:my first test
使用第一个可用的分隔符很重要:我需要my first test而不是my first test. I like this test
这就是我目前所拥有的:

SELECT SUBSTRING(@Text, CHARINDEX('my', @Text), CHARINDEX('test',@text) - CHARINDEX('my', @Text) + Len('test'));

但我不知道剩下的该怎么办。代码会一直寻找第一个可用的分隔符吗?
我希望有人能帮助我。谢谢!

最佳答案

你是说这样的事吗?
mysql>设置@Text='Hello!这是我第一次考试。我喜欢这个测试;
查询正常,0行受影响(0,00秒)

SET @Text='Hello! This is my first test. I like this test.';

SELECT
    SUBSTRING(@Text, INSTR(@Text,'my')
    , (INSTR(@Text,'test') - INSTR(@Text,'my') + CHAR_LENGTH('test')))
    INTO @result;

SELECT @result;

样品
    mysql> SET @Text='Hello! This is my first test. I like this test.';
    mysql> SELECT
        ->     SUBSTRING(@Text, INSTR(@Text,'my')
        ->     , (INSTR(@Text,'test') - INSTR(@Text,'my') + CHAR_LENGTH('test')))
        ->     INTO @result;
    Query OK, 1 row affected (0,00 sec)

    mysql> SELECT @result;
    +---------------+
    | @result       |
    +---------------+
    | my first test |
    +---------------+
    1 row in set (0,00 sec)

    mysql>

关于mysql - 如何在定界符之间选择字符串并插入MySQL的其他列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42053433/

10-17 03:11