我的数据库中有一个字段,其中有一长串用逗号分隔的字符串。以下是几行示例:
HAB
DHAB,RAB,DAB
HAB,RAB,DAB
RAB,HAB,
RAB,HAB,DAB
我的查询条件如下:
WHERE description LIKE '%HAB%'
但是它返回第二行有'DHAB'。
是否可以使用带有 WHERE
语句的正则表达式来完成,以便我只获得列表中包含“HAB”的条目(一个字符串)而不是包含“DHAB”的条目?
最佳答案
你可以使用
WHERE description ~ '(^|,)HAB($|,)'
正则表达式匹配
(^|,)
- 字符串或,
的开头
HAB
- 文字子串($|,)
- 字符串结尾或,
参见 online regex demo .
关于sql - 简单的正则表达式来过滤掉前缀和后缀字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53287634/