mysql - 在MySQL中使用子字符串从字符串中过滤特定的单词

标签 mysql string substring

下面的语句产生了 vendor_name 中第一个单词之后的所有内容。我需要它在使用子字符串时仅产生 vendor_name 中的第二个词。如果为 NULL,我还需要它返回一个空白字段。这可能吗?

select substring_index(vendor_name, ' ',-2) as 'Second Word'
from vendors;

编辑:我认为它需要遵循这些思路,但我无法让它工作: substring_index(substring_index(vendor_name, ' ', -2)vendor_name, ' ', 1) 作为 '第二个字'

最佳答案

如果您只想要第二个词,我会得到前两个词,然后从结果中选择最后一个词。这可以处理您可能有四个或更多单词的情况。

mysql> select substring_index('one two three four', ' ', 2) as s;
+---------+
| s       |
+---------+
| one two |
+---------+

mysql> select substring_index(substring_index('one two three four', ' ', 2), ' ', -1) as s;
+-----+
| s   |
+-----+
| two |
+-----+

关于mysql - 在MySQL中使用子字符串从字符串中过滤特定的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46817607/

相关文章:

php - 根据各自的日期时间字段从两个不同的表中获取记录 - mysql

java - 需要 parseInt 方面的帮助

shell - 如何使用 ksh 提取可变长度子字符串

algorithm - Knuth-Morris-Pratt 算法极端情况

mysql - 数据库:表设计/结构

php - mysql查询获取每家公司的所有评论

php - 选择月日年作为mysql中的日期?

arrays - PowerShell:为什么一个参数上的 [Parameter(Mandatory = $True)] 会影响另一个参数的类型转换行为?

c++ - 在 C++ 中的字符串之间添加一个字符

java - java "stringtokenizer.nextToken(delimiter); "是如何工作的?