首页 > 解决方案 > 如何在sql中提取以ed结尾的单词及其前后的单词?

问题描述

我有一列成分,我想提取所有以“ed”结尾的成分。例如; 我有一份成分清单,例如:

Dolin dry vermouth
Cabin Fever maple flavored whiskey
bacon strips
ginger ale
tequila
Eggnog*
Flamed orange peel
Amontillado sherry
White rum
Lemon wedge
Vodka
Fresh lemon juice
Triple sec
Silver tequila
Gin
Simple syrup
Cola, to top
Cola Candied ginger
Fresh lemon juice

我想要一个正则表达式,它应该提取以“ed”结尾的完整成分字符串,例如:

Cabin Fever maple flavored whiskey
Flamed orange peel
Cola Candied ginger

标签: mysqlsql

解决方案


尝试[a-z]ed( |$)使用regexp运算符/函数的模式。

图案说明:

[a-z]- 匹配任何字母

eded-从字面上匹配

( |$)- 匹配空格或字符串结尾(所以确保它后面没有任何字母)

完整查询将是:

select * 
from test
where lower(ingr) regexp '[a-z]ed( |$)'

SQL 演示

请注意,我添加了记录Orange flamed以显示它ed在字符串末尾时工作。


推荐阅读