在我的网站上,人们可以对评论表示赞同或反对。 为此,我使用两个表:
$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 语句来按评论的点赞数对评论进行排序非常困难。
如果有人对如何执行此操作有任何想法,我们将不胜感激。
最佳答案
如果将点赞数存储为整数而不是字母,会更容易。
我使用 case 语句添加了点赞数,并按评论分组。
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
关于php - 如何在 MySQL 中按喜欢/不喜欢对评论进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14913385/