我有包含 city_id
列的用户表,在此列中,城市 ID 存储为逗号分隔值,如下所示:
用户
user_id user_name city_id
1 ahmar_arshad 1,2,3
2 abdul_muiz 15,2,9
3 abdul_momin 1,2,13
现在我想从 city_id
列中搜索包含城市 id = 1
的行。
如何实现?
最佳答案
这是一个通用的解决方案,应该适用于 Postgres:
SELECT *
FROM yourTable
WHERE ',' || city_id || ',' LIKE '%,1,%';
Demo
这里的技巧是比较表格中城市 ID 的 CSV 列表,例如,1,2,3,
对 ,ID,
,其中 ID
可以是任何单独的城市 ID。
请注意,最好规范化您的表格并将这些城市 ID 存储在不同的记录中,而不是 CSV 字符串中。这将使查询数据变得更加容易,并且可能还会提高性能。
关于sql - 从逗号分隔值搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48375523/