Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用cake php或php在单个查询中获得帖子的喜欢和不喜欢计数_Php_Mysql_Sql_Cakephp_Cakephp 3.0 - Fatal编程技术网

如何使用cake php或php在单个查询中获得帖子的喜欢和不喜欢计数

如何使用cake php或php在单个查询中获得帖子的喜欢和不喜欢计数,php,mysql,sql,cakephp,cakephp-3.0,Php,Mysql,Sql,Cakephp,Cakephp 3.0,我已经研究了一天,但我没有得到解决方案。如果有可能得到他喜欢和不喜欢的所有文章计数使用单一的CakePHP查询 表结构 id user_id posts_id like_and_dislike 1 1 1 1 2 2 1 1 3 4 1 0 4 5 2 1 在这里,我们需要得到所有帖子的喜欢和不喜欢计数 发布1喜欢->2和不喜欢->

我已经研究了一天,但我没有得到解决方案。如果有可能得到他喜欢和不喜欢的所有文章计数使用单一的CakePHP查询 表结构

id user_id  posts_id  like_and_dislike
1    1         1          1
2    2         1          1
3    4         1          0
4    5         2          1
在这里,我们需要得到所有帖子的喜欢和不喜欢计数 发布1喜欢->2和不喜欢->1,发布-2喜欢->1和不喜欢->0 需要列出计数。请在此查询中提供任何帮助。如果不可能,请在php查询中提供帮助

行为 在同一查询中获取计数,效率较低 你有两个选择

行为 在同一查询中获取计数,效率较低
我想你需要这个

SELECT post_id, 
COUNT( CASE WHEN like_and_dislike = 1 THEN 1 END ) AS like_cnt, 
COUNT( CASE WHEN like_and_dislike = 0 THEN 1 END ) AS dislike_cnt 
FROM your_table
GROUP BY post_id
-- ORDER BY something
-- LIMIT x, y

我想你需要这个

SELECT post_id, 
COUNT( CASE WHEN like_and_dislike = 1 THEN 1 END ) AS like_cnt, 
COUNT( CASE WHEN like_and_dislike = 0 THEN 1 END ) AS dislike_cnt 
FROM your_table
GROUP BY post_id
-- ORDER BY something
-- LIMIT x, y

使用该表数据,预期结果是什么?以及格式良好的文本。还显示您当前的查询尝试。我需要输出为{[{posts_id:1,likes:2,loke:1},{posts_id:2,likes:1,loke:null}]}并且我尝试了sql查询分词器post 14,但我需要列出所有posts SELECT*,SELECT COUNT*,来自用户_like_posts,其中posts_id=14,like_或_loke='0'按realtime_id分组为loke,选择COUNT*FROM users\u like\u posts,其中realtime\u id=14,like\u or\u have='1'groupby realtime\u id作为postlike FROM users\u like\u posts用户的内部连接posts\u like\u posts.posts\u id=posts.id其中posts\u id=14 groupby posts\u id使用该表数据,预期结果是什么?以及格式良好的文本。还显示您当前的查询尝试。我需要输出为{[{posts_id:1,likes:2,loke:1},{posts_id:2,likes:1,loke:null}]}并且我尝试了sql查询分词器post 14,但我需要列出所有posts SELECT*,SELECT COUNT*,来自用户_like_posts,其中posts_id=14,like_或_loke='0'按realtime_id分组为loke,选择COUNT*FROM users_like_posts,其中realtime_id=14,like_or_have='1'groupby realtime_id作为postlike FROM users_like_posts内部连接posts关于users_like_posts.posts_id=posts.id其中posts_id=14 GROUP BY posts_id在文档中有一个非常准确的例子:@ndm-我从来没有看过cakephph文档,虽然这对我来说并不奇怪,但也有类似的例子,因为这种SQL方法在类似的情况下非常常见this@OtoShavadze还有一个问题是如何使用此限制query@RaghulRajendran-你需要什么来限制,请告诉我更多clearly@OtoShavadze查询返回的值数组没有问题。我需要自定义限制数组,例如SELECT*FROM Orders limit 30,以实现对结果的分页。这里有一个非常准确的示例,在文档中顺便说一句:@ndm-我从未看过cakephph文档,虽然这对我来说并不奇怪,但也有类似的例子,因为这种SQL方法在类似的情况下非常常见this@OtoShavadze还有一个问题是如何使用此限制query@RaghulRajendran-你需要什么来限制,请告诉我更多clearly@OtoShavadze查询返回的值数组在这方面没有问题。我需要自定义限制数组,例如SELECT*FROM Orders limit 30,以实现对结果的分页