我有桌子
raw TABLE
=========
id class_ids
------------------------
1 1234,12334,12341,1228
2 12281,12341,12283
3 1234,34221,31233,43434,1123
如何定义regex以在类id包含特殊id时选择raws。
如果选择类id中
'1234'
的raws,则结果列表不应包含类id中'12341'
的raws。用
class_ids
分隔的,
列中的idSELECT FROM raw re WHERE re.class_ids LIKE (regex)
最佳答案
不应将逗号分隔的值存储在单个列中。
但是,最好在Postgres中使用string_to_array()而不是regex:
SELECT *
FROM raw
WHERE '1234'= any(string_to_array(class_ids, ','));
如果您真的想反规范化数据,最好将这些数字存储在一个适当的整数数组中,而不是用逗号分隔的字符串列表
关于sql - 选择逗号分隔的字符串是否包含值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39700960/