我有一个数据库,其中包含用户ID和朋友ID。 friend_ids保存为数组。我有一个页面,其中应显示所有时刻。我想检查包含特定ID的时刻。例如,我做了一个自己的时刻,因此我的ID位于user_id字段中,但我的一个朋友也创建了一个时刻,因此我位于friend_ids中。现在,我需要在此页面上检查我的ID是否出现在user_id或friend_ids表中。如何检查数据库数组中是否存在值?我是否必须获取所有记录并遍历它们以检查数组,还是有更好的方法?
该数组在数据库中如下所示:
[2,3]
答案 0 :(得分:2)
作为一般建议,这不是将内容存储在数据库中的好方法。您最好创建一个联结表来保存每对用户的友谊状态。
如果不能这样做,则可以将第一个和最后一个字符([
和]
)切掉,并在其余的逗号分隔的字符串上使用find_in_set
:< / p>
SELECT *
FROM mytable
WHERE SELECT FIND_IN_SET(123, TRIM(TRAILING ']' FROM TRIM(LEADING '[' FROM friend_ids))) > 0
-- Just an example -------^
答案 1 :(得分:1)