news 2026/7/28 15:35:47

sql查询 case 进行已读未读消息的处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
sql查询 case 进行已读未读消息的处理

消息分为系统消息与个人消息。

思路:消息统一发送,用户点击某条消息后生成点击记录,代表已读,通过消息点击记录来区分已读未读。

1、数据库结构

CREATE TABLE `sh_push` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0 系统消息 1 个人消息', `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '用户id 配合type类型等于1使用', `product_id` int(11) NOT NULL DEFAULT '0' COMMENT '产品ID', `name` varchar(100) NOT NULL COMMENT 'push名称', `describe` varchar(500) NOT NULL COMMENT '描述', `notice` varchar(500) NOT NULL DEFAULT '' COMMENT '通知', `is_send` enum('1','0') NOT NULL DEFAULT '0' COMMENT '发送状态 1为已发送 0为未发送', `state` enum('1','0') DEFAULT '1' COMMENT '状态 1显示 0隐藏', `send_time` varchar(50) DEFAULT '' COMMENT '最后一次发送时间', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '修改时间', PRIMARY KEY (`id`), KEY `IDX_product_id` (`product_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; CREATE TABLE `sh_push_click` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL DEFAULT '0' COMMENT '产品ID', `channel_id` int(11) NOT NULL DEFAULT '0' COMMENT '渠道编号', `push_id` int(11) NOT NULL DEFAULT '0' COMMENT 'push编号', `member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员ID', `click_time` datetime NOT NULL COMMENT '点击时间', PRIMARY KEY (`id`), KEY `IDX_MEMBER_ID_PUSH_ID` (`member_id`,`push_id`) USING BTREE, KEY `IDX_MEMBER_ID_PRODUCT_ID` (`member_id`,`product_id`) USING BTREE, KEY `IDX_ME_PU_PR` (`member_id`,`push_id`,`product_id`) USING BTREE, KEY `push_id` (`push_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

sql查询语句

select id,name,type,user_id,case when id in(select push_id from sh_push_click where member_id = 1) then 1 else 0 end click_type from sh_push a where type = 0 or user_id = 1;

解释:case when 查询sh_push表中id 是否在记录表sh_push_click中,如果有值记为1 如果没用记为0 给定字段名为 click_type;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 15:35:29

基于小波变换与LGBM的交通流量预测方案

1. 项目背景与核心思路 交通流量预测一直是智能交通系统(ITS)的核心课题。传统的时间序列预测方法如ARIMA在面对复杂的非线性交通流数据时往往表现不佳。我们团队尝试将小波变换(WT)的信号处理优势与轻量级梯度提升机(LGBM)的机器学习特性相结合,在MATLAB平台上实现…

作者头像 李华
网站建设 2026/7/28 15:34:56

android 中用代码模拟发送按键

android 中用代码模拟发送按键 有时候在代码中需要模拟一些用户操作的按键,例如TV 中遥控器的按键,一些测试脚本的编写。再比如android 手机中虚拟按键,以及悬浮窗中的返回功能,等等。都是模拟发送按键来操作。 这里介绍三种方法&…

作者头像 李华
网站建设 2026/7/28 15:31:58

3步掌握FunClip:用AI语音识别让视频剪辑变得如此简单

3步掌握FunClip:用AI语音识别让视频剪辑变得如此简单 【免费下载链接】FunClip FunASR-powered video transcription, subtitle generation, and LLM-assisted clipping tool with a local Gradio UI. 项目地址: https://gitcode.com/GitHub_Trending/fu/FunClip …

作者头像 李华
网站建设 2026/7/28 15:31:52

OpenRGB终极指南:一站式免费开源RGB灯光控制软件

OpenRGB终极指南:一站式免费开源RGB灯光控制软件 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Releases ca…

作者头像 李华
网站建设 2026/7/28 15:31:48

C/C++:子串判断

一、子串判断题目描述我们定义字符串包含关系:字符串Aabc,字符串Bab,字符串Cac,则说A包含B,A和C没有包含关系。输入描述:两个字符串,判断这个两个字符串是否具有包含关系,测试数据有多组&#x…

作者头像 李华
网站建设 2026/7/28 15:30:38

生产级JSON生成:Taotoken实测6种方法,GPT-5.4在工具调用场景翻车率超15%

大模型JSON生成稳定性深度评测:6种方案与Taotoken实战指南 问题背景与现状分析 在当前的AI应用开发中,JSON格式数据的生成质量已成为影响系统稳定性的关键因素。根据Taotoken平台2024年Q1的故障统计报告,约有23.7%的API异常源于大模型生成的…

作者头像 李华