我的数据库中有一个字段,它有一长串用逗号分隔的字符串。下面是一些行示例:

HAB
DHAB,RAB,DAB
HAB,RAB,DAB
RAB,HAB,
RAB,HAB,DAB

我的查询有以下条件:
WHERE description LIKE '%HAB%'

但它返回的第二行有“DHAB”。
是否可以使用带有WHERE语句的regex来完成,这样我只得到列表中有'HAB'的条目(一个字符串),而没有'DHAB'的条目?

最佳答案

你可以用

WHERE description ~ '(^|,)HAB($|,)'

正则表达式匹配
(^|,)-字符串开始或a,
HAB-文字子字符串
($|,)-字符串结束或,
请参见online regex demo

关于sql - 简单的正则表达式过滤掉前置和后缀字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53287634/

10-09 07:03