gpt4 book ai didi

sql - 选择逗号分隔的字符串是否包含值

转载 作者:行者123 更新时间:2023-11-29 14:03:42 25 4
gpt4 key购买 nike

我有 table

raw TABLE 
=========
id class_ids
------------------------
1 1234,12334,12341,1228
2 12281,12341,12283
3 1234,34221,31233,43434,1123

如果 class_ids 包含特殊 id,如何定义正则表达式来选择 raws。如果我们选择 raws with '1234' in class_ids 结果列表不应该包含 raws with '12341' in class_ids。

class_ids 列中的 ID 用 , 分隔

SELECT FROM raw re WHERE re.class_ids LIKE (regex)

最佳答案

您不应将逗号分隔值存储在单个列中。


但是,最好在 Postgres 中使用 string_to_array() 而不是正则表达式:

SELECT *
FROM raw
WHERE '1234'= any(string_to_array(class_ids, ','));

如果您真的想对数据进行反规范化,最好将这些数字存储在适当的整数数组中,而不是用逗号分隔的字符串列表

关于sql - 选择逗号分隔的字符串是否包含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39700960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com