繁体   English   中英

选择Concat子字符串并在MySQL中替换

[英]Select Concat Substring and Replace in MySQL

我有一个.sql文件,需要删除所有多余的字符,仅保留文本。 因此“”内的所有内容。 该列中TEXT字段的示例是

a:1:{i:0; s:9:“在这里测试单词”;}

a:1:{i:0; s:11:“也在这里测试单词”;}

所以我想要这些话。 在这里测试单词。 并在这里测试单词。 全部保留在文本字段中。

我本来就是这样的。

  UPDATE `questions`
  SET answer = REPLACE(REPLACE(REPLACE(REPLACE(answer, 'a:1', ''), 's:4', ''), 'i:0', ''), ',', '')

但是很快就意识到s:4具有s:5,s:16等。所以这是行不通的。 我的下一个尝试是使用concat并仅删除以a:1开头的一定数量的字符。 我能够进行有效的SELECT。 但是无法获得替换才能正常工作。 您可以在下面看到有效的SELECT。

SELECT CONCAT('tt',
          SUBSTRING(`answer`, -LOCATE('a:1', `answer`)+15)
   ) from `questions`;

这是我尝试更换产品的尝试。 但是我被困住了。 我愿意接受任何建议,以防万一我走在完全错误的方向上。

SELECT CONCAT(REPLACE('tt',
          SUBSTRING(`answer`, -LOCATE('a:1', `answer`)+15))
   ) from `questions`;

您可以执行以下操作:

select substr(with_end, 1, locate('"', with_end )-1) as 'str'
from (
  select substr(answer, locate('"', answer )+1) 'with_end'
  from questions
) as q

substring_index()怎么样?

UPDATE `questions`
    SET answer = substring_index(substring_index(answer, '"', 2), '"', -1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM