【发布时间】:2016-08-29 12:48:52
【问题描述】:
我有以下形式的数据,我想根据我必须从 user_ids 数组中找到的特定 user_id 对 usernames 列进行排序。
usernames | empno | user_ids |
------------------+---------------------
{ Akon, Den } | 11 | { 12, 13 } |
{ John, Nash } | 7 | { 15, 12 } |
{ Ahmad, Umar }| 9 | { 18, 12 } |
例如,应首先显示user_id = 12 的用户名。结果如下所示
usernames | empno |
------------------+--------
{ Akon, Den } | 11 |
{ Nash, John } | 7 |
{ Umar, Ahmad }| 9 |
我相信在 Postgres 中会有一些最简单的方法来做到这一点。这个结构只是一个例子。
【问题讨论】:
-
为什么一个user_id会映射到多个user_names?
-
逗号分隔的数据不是 SQL 方式,这种设计只会给你带来很多麻烦......(并且让简单的事情变得非常困难。)
-
@jarlh 根据我的数据库架构,我必须以 CSV 格式导出一些信息,因为必须这样做。
-
@vkp 根据我的架构,我可以将一个 user_id 映射到多个用户名:)
-
即使业务规则允许每个 user_id 有多个用户名,您的数据库设计也很差。搜索数据库规范化。
标签: sql postgresql