我有一个Wordpress插件,允许用户保存喜欢的帖子。 在我的Wordpress MySQL数据库中,该表如下所示:

id     | user_id | post_id  
-------+---------+------------
1      | 1       | 3,4,5,6,7,8  
2      | 2       | 5,7,8,10
3      | 5       | 3,6,8,10

我期待采取一切post_id号码,并把它们组合成一个变量,这样我可以foreach他们能够找到多少场比赛有当前的文章中,我阅读。

例如,如果我正在阅读ID 10,那么我希望能够看到有2个人将其保存为收藏夹。

我试过$data = $wpdb->get_var("SELECT post_id FROM $table_name"); var_dump($data); 但这只会返回喜欢的帖子,而不是所有喜欢的帖子。

===============>>#1 票数:1 已采纳

尽管我在有关规范化的评论中确实扮演了恶魔拥护者的角色,但是这种表格布局确实让人不知所措。 但是,如果您无法规范化数据库表并必须使用已有的表,则可以从技术上通过一个颇为易懂的sql语句来执行您要执行的操作:


SELECT count(user_id) as TotalWishes
FROM table_name
WHERE (
 (post_id LIKE 'n,%') OR
 (post_id LIKE '%,n,%') OR
 (post_id LIKE '%,n')
 )

在此示例中,n是您的帖子编号。

即使编写该文档,我也感到很脏,但是在对您的问题的最严格解释中,此查询应该可以满足您的要求。

  ask by Pat translate from so

未解决问题?本站智能推荐: