如何在MYSQL数据库中查询数组中的所有值

时间:2011-02-23 16:49:33

标签: mysql

我有一个带有用户和活动表的MYSQL数据库。包含用户信息的用户表和包含有关此站点上用户活动的消息的活动表(类似于facebooks新闻源)。

在users表中,我存储了一个朋友数组,这只是一个逗号分隔的字符串。 (FRIEND_LIST)

我正在尝试选择使用mysql为朋友列表中的所有朋友以及当前用户加入所有消息,然后按活动时间戳排序。

我在想这样的事情......

$query=mysql_query("SELECT * FROM users,activity WHERE users.user=activity.user OR //### ACTIVITY.USER IS EQUAL TO ONE OF THE USERS.FRIEND_LIST ARRAY VALUES ### ORDER BY activity.timestamp")or die(mysql_error());

这是一个难以形容的人。我希望你明白。

我不知道将activity.user与值数组(users.friend_list)进行比较的语法

当你知道如何时,它可能非常简单。对此有任何想法都很棒。

1 个答案:

答案 0 :(得分:0)

修复数据库架构。 MySQL没有“数组值”的概念。您应该使用表,列和行来描述数据以及实体之间的关系。

你可以创建一个friends表,在那里你可以存储两个人的朋友的ID。然后这只是一个加入的问题。

CREATE TABLE friends (
    user1 INTEGER NOT NULL,
    user2 INTEGER NOT NULL,
    PRIMARY KEY (user1, user2)
);