在我的网站上,人们可以对评论竖起大拇指或竖起大拇指。 为此,我使用两个表:
$sql = "CREATE TABLE content
(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
content TEXT NOT NULL,
date date,
time time
)";
和
$sql2 = "CREATE TABLE ratings
(
rating_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL ,
rating VARCHAR (10) NOT NULL ,
id INT NOT NULL ,
ip VARCHAR (50) NOT NULL
)";
评级中存储的数据如下:
Comment ID like/dislike user IP
1 l 86.42.173.83
1 d 86.42.173.43
2 l 86.42.173.79
2 l 86.42.173.34
2 d 86.42.173.22
我遇到的问题是,我发现创建一个SQL语句来按照他们喜欢的数量订购评论非常困难。
如果有人对如何做到这一点有任何想法,我们将不胜感激。
答案 0 :(得分:2)
如果您将喜欢的内容存储为整数而不是字母,那会更容易。
我使用案例陈述添加了喜欢的内容并按评论分组。
SELECT C.content,
SUM(CASE WHEN R.rating = 'l' THEN 1 ELSE -1 END) AS overallRating
FROM content C
LEFT JOIN ratings R ON R.id = C.id
GROUP BY C.content
ORDER BY overallRating
答案 1 :(得分:0)
这样的事情会起作用
select content.text, count(*) likes
from content join ratings on content.id = ratings.id
group by context.text
order by likes