如何提取第n个单词并计算MySQL字符串中出现的单词?

我想要一个这样的mysql查询:


select <second word in text> word, count(*) from table group by word;

所有在MySQL中的正则表达式例子来查询,如果文本的表达式匹配,但不提取文本出的表情。有这样的语法吗?


千巷猫影
浏览 635回答 3
3回答

蛊毒传说

以下是针对OP的特定问题(提取字符串的第二个单词)的建议解决方案,但应注意,由于mc0e的回答,在MySQL中不支持实际提取正则表达式匹配。如果确实需要此功能,那么您的选择基本上是:1)在客户端的后处理中执行此操作,或2)安装一个MySQL扩展来支持它。BenWells几乎完全正确。根据他的代码工作,这是一个经过稍微调整的版本:SUBSTRING(&nbsp; sentence,&nbsp; LOCATE(' ', sentence) + CHAR_LENGTH(' '),&nbsp; LOCATE(' ', sentence,&nbsp; ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') ))作为一个工作示例,我使用:SELECT SUBSTRING(&nbsp; sentence,&nbsp; LOCATE(' ', sentence) + CHAR_LENGTH(' '),&nbsp; LOCATE(' ', sentence,&nbsp; ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') )) as stringFROM (SELECT 'THIS IS A TEST' AS sentence) temp这样可以成功提取单词 IS

冉冉说

提取句子中第二个单词的简短选择:SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('THIS IS A TEST', ' ',&nbsp; 2), ' ', -1) as FoundTextSUBSTRING_INDEX的MySQL文档
打开App,查看更多内容
随时随地看视频慕课网APP