2011-02-23 50 views
0

我有一个MYSQL数据库与一个用户和一个活动表。包含用户信息和活动表的用户表,其中包含有关此网站上的用户活动的消息(类似于Facebook新闻提要)。如何查询数组中的所有值的MYSQL数据库

在用户表中我有一个存储的朋友数组,它只是一个逗号分隔的字符串。 (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)数组

它可能很简单,当你知道如何。任何想法都会很棒。

回答

0

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

您可以创建一个friends表,您可以在其中存储两个朋友的ID。那么这只是一个加入的问题。

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