假设MySQL数据库中有一个表,其中有两列first_string
和second_string
。first_string
包含以下句子:Hello! This is my first test. I like this test.
我想获取分隔符my
和test
之间的所有值(包括分隔符本身),并将其插入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/