为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

千巷猫影 2019-11-02 10:29:23
我想要一个这样的mysql查询:select <second word in text> word, count(*) from table group by word;所有在MySQL中的正则表达式例子来查询,如果文本的表达式匹配,但不提取文本出的表情。有这样的语法吗?
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

以下是针对OP的特定问题(提取字符串的第二个单词)的建议解决方案,但应注意,由于mc0e的回答,在MySQL中不支持实际提取正则表达式匹配。如果确实需要此功能,那么您的选择基本上是:1)在客户端的后处理中执行此操作,或2)安装一个MySQL扩展来支持它。


BenWells几乎完全正确。根据他的代码工作,这是一个经过稍微调整的版本:


SUBSTRING(

  sentence,

  LOCATE(' ', sentence) + CHAR_LENGTH(' '),

  LOCATE(' ', sentence,

  ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') )

)

作为一个工作示例,我使用:


SELECT SUBSTRING(

  sentence,

  LOCATE(' ', sentence) + CHAR_LENGTH(' '),

  LOCATE(' ', sentence,

  ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') )

) as string

FROM (SELECT 'THIS IS A TEST' AS sentence) temp

这样可以成功提取单词 IS


查看完整回答
反对 回复 2019-11-02
?
冉冉说

TA贡献1877条经验 获得超1个赞

提取句子中第二个单词的简短选择:


SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('THIS IS A TEST', ' ',  2), ' ', -1) as FoundText

SUBSTRING_INDEX的MySQL文档


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 632 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信