【发布时间】:2019-06-07 01:20:27
【问题描述】:
我有一个数据库,其中时刻包含用户 ID 和朋友 ID。朋友 ID 被保存为一个数组。我有一个页面应该显示所有的时刻。我想检查包含某个 id 的时刻。例如,我自己制作了一个时刻,所以我的 id 在字段 user_id 中,但我的一个朋友也创建了一个时刻,所以我在friend_ids 中。现在我需要在这个页面上检查我的 id 是否出现在 user_id 或friend_ids 表中。如何检查数据库中的数组中是否存在值?我是否必须获取所有记录并遍历它们以检查数组还是有更好的方法?
数组在数据库中是这样的:
[2,3]
【问题讨论】:
-
这个数组在数据库中是如何表示的?
-
我把它添加到我的问题@Mureinik
-
您的数据库设计似乎很糟糕。保存为数组是一个坏主意,尤其是当您尝试在此类列上应用条件时。您应该考虑多对多关系(将 user_id 和friend_id 保存在数据透视表中)。你能改变数据库结构吗?
-
所以,只是为了确保我理解。单个用户正在创建一个时刻(表示为 user_id),并且他可以将此时刻与他的朋友(存储在friend_ids 中)相关联?
-
检查我的建议。
标签: php mysql sql arrays select