技术文摘
SQL 查询文章列表并判断当前用户是否点赞的方法
2025-01-14 18:07:05 小编
在开发涉及文章展示与用户交互功能的应用时,经常需要实现查询文章列表并判断当前用户是否点赞的功能。这不仅能提升用户体验,还能增强平台的互动性。下面就为大家详细介绍如何使用 SQL 实现这一功能。
我们需要有两个关键的数据库表:文章表(articles)和点赞表(likes)。文章表用于存储文章的基本信息,例如文章 ID、标题、内容等;点赞表则用于记录用户对文章的点赞操作,包含点赞 ID、用户 ID 和文章 ID 等字段。
假设文章表的结构如下:
CREATE TABLE articles (
article_id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255),
content TEXT
);
点赞表的结构如下:
CREATE TABLE likes (
like_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
article_id INT,
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (article_id) REFERENCES articles(article_id)
);
接下来,要查询文章列表并判断当前用户是否点赞,可以使用如下的 SQL 查询语句:
SELECT
a.article_id,
a.title,
a.content,
CASE
WHEN l.user_id IS NOT NULL THEN 1
ELSE 0
END AS is_liked
FROM
articles a
LEFT JOIN
likes l ON a.article_id = l.article_id AND l.user_id = <current_user_id>;
在上述查询中,我们使用 LEFT JOIN 将文章表和点赞表进行关联。通过 a.article_id = l.article_id 确保关联的文章是正确的,并且通过 l.user_id = <current_user_id> 筛选出当前用户的点赞记录。CASE 语句用于判断当前用户是否对文章点赞,如果 l.user_id 不为空,则表示用户已经点赞,is_liked 字段为 1;否则为 0。
通过这种方式,我们可以一次性获取文章列表,并清楚地知道当前用户对每篇文章的点赞状态。在实际应用中,只需将 <current_user_id> 替换为当前登录用户的实际 ID 即可。这种 SQL 查询方法简洁高效,能够满足大多数场景下查询文章列表并判断用户点赞状态的需求,为开发人员提供了便利。
- OCR 在转转游戏中的应用
- “五力”破局中小企业数字化转型困境
- 并发编程中线程池核心原理剖析
- 基于 CDC 模式对遗留系统的改造
- 【Go 微服务】轻松玩转 ProtoBuf
- Feed 与秒杀在撑住 10Wqps 时,架构方案是否相同?
- 群聊较单聊,为何复杂许多?
- 为 awk 脚本注入 Groovy 新活力
- Go 真实项目性能案例剖析
- 重大发现:AQS 加锁机制与 Synchronized 的惊人相似之处
- Python 在微服务架构中是否有效?
- 原生 JS 助力:快速打造五子棋小游戏秘籍
- 京东面试竟问 JVM 堆外内存,我瞬间慌了,赶忙复习
- 12 个 JavaScript 常用妙招,助你尽显专业范
- 耗时一年半推出第一版,此工具能否一统前端?