简版会员私信表设计及sql 私信列表查询
先上下表结构和数据
DROP TABLE IF EXISTS `message`;
CREATE TABLE `message` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '会员私信',
`from_uid` int(255) NOT NULL DEFAULT '0' COMMENT '发送者',
`to_uid` int(255) NOT NULL DEFAULT '0' COMMENT '接受者',
`flg` int(11) NOT NULL DEFAULT '0' COMMENT '状态 0:未读 1 : 已读',
`content` varchar(255) NOT NULL DEFAULT '' COMMENT '内容',
`createtime` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_uid` (`from_uid`),
KEY `to_uid` (`to_uid`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of jzhs_mssage
-- ----------------------------
INSERT INTO `message` VALUES ('10', '1', '2', '0', 'aaaaa', '0000-00-00 00:00:00');
INSERT INTO `message` VALUES ('11', '2', '1', '0', 'bbbbb', '0000-00-00 00:00:00');
INSERT INTO `message` VALUES ('12', '1', '3', '0', 'ccccc', '0000-00-00 00:00:00');
查询的目的为 获取本表中私信列表,内容取私信的最后一条。从网上找了很多方法,但是看着比较麻烦。所以采取了一个非常菜的写法,也总算完成了目的。
强烈欢迎各位大神来指正和交流!!
输出内容如下
from_uid |
to_uid |
flg |
content |
createtime |
2 | 1 | 0 | bbbbb | |
1 | 3 | 0 | ccccc |
执行sql:
SELECT from_uid,to_uid,content,createtime,if(from_uid>to_uid,CONCAT(from_uid,'_',to_uid),CONCAT(to_uid,'_',from_uid)) as groups
FROM message
GROUP BY groups
ORDER BY id DESC
主要目的为,已from_uid、to_uid两个字段的进行分组查询。前提为这两个是int类型,方便做if的判断操作。
简版会员私信表设计及sql 私信列表查询的更多相关文章
- mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化
可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...
- mybatis-plus注解版实现多表联查(sql)
mybatis注解版实现多表联查 需求: 用户有角色,角色有权限,需要一次取用户信息包含角色信息及其对应权限 实体类: package cn.zytao.taosir.common.model.use ...
- 表设计与SQL优化
1. 说说分区表的主要好处是什么,为什么会有这些好处. 分区功能能够将表.索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区.每个分区有自己的名称,还可以选择自己的存储特性. 从数据库管理员的 ...
- SQL动态列查询
数据库中为了实现表格数据的自由设置,我们经常设计纵表,或者列定义的表(如下KeyValue),定义一个列超级多的表中每个字段的意义. 但是在设计时简单的东西却很容易被人们忘记,如下一个简单但是很松散的 ...
- 【SQL】各取所需 | SQL JOIN连接查询各种用法总结
前面 在实际应用中,大多的查询都是需要多表连接查询的,但很多初学SQL的小伙伴总对各种JOIN有些迷糊.回想一下,初期很长一段时间,我常用的似乎也就是等值连接 WHERE 后面加等号,对各种JOIN也 ...
- 走向DBA[MSSQL篇] 针对大表 设计高效的存储过程【原理篇】 附最差性能sql语句进化过程客串
原文:走向DBA[MSSQL篇] 针对大表 设计高效的存储过程[原理篇] 附最差性能sql语句进化过程客串 测试的结果在此处 本篇详解一下原理 设计背景 由于历史原因,线上库环境数据量及其庞大,很多千 ...
- 优化一个奇葩表设计上的全表扫描SQL
之前在一个比较繁忙的系统抓到的耗时长.消耗CPU多的一条SQL,如下:SELECT * FROM Z_VISU_DATA_ALARM_LOG TWHERE TO_DATE(T.T_TIMESTR, ' ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
- Oracle SQL调优之表设计
在看<收获,不止sql优化>一书,并做了笔记,本博客介绍一下一些和调优相关的表比如分区表.临时表.索引组织表.簇表以及表压缩技术 分区表使用与查询频繁而更新数据不频繁的情况,不过要记得加全 ...
随机推荐
- PHP用mysql数据库存储session
大部分使用php的人一旦应用到session都会使用cookie. cookie虽好可是它也会给我们带来一些隐患的. 隐患一:如果客户端机器的cookie一旦因病毒而失效了,那么session也就相当 ...
- 解决dede图集上传图片时跳出302错误
错误.以前从来没遇到过,想了半天也没想出是哪里出了错误,郁闷~ 没辙,去论坛搜了一下,还真有同命相连的兄弟,同样爆出这个错误.往下拉了几楼,还是找到了答案. 解决办法是: 在include/userl ...
- 斗鱼连接弹幕Demo_pythonC#
简明扼要的说下, 就两个线程,一个 负责收数据,一个负责发心跳包. 步骤如下, 进程1,调用 发包函数,发送连接请求,然后再发送 获取弹幕类型请求,就一直循环接收数据. 进程2,循环函数,每隔45秒向 ...
- StreamReader类
StreamReader类用于从文件中读取数据,该类是一个通用类,可用于任何流,构造方法和StreamWrite类格式一样的. 创建方式有两种: 1.先创建Filestream类在创建StreamRe ...
- PHP运行机制
PHP运行机制: 访问html文件:访问的域名à解析成IP地址(hosts文件,dns)à找到服务器àapache拿到html文件à返回给浏览器à浏览器解析html内容 访问php文件:apache拿 ...
- 拼json对象批量向后台添加数据
网站中如果遇到批量提交格式相同数据,可以使用json来传输 $("#catalogSave").click(function(){ var array=[]; $("[n ...
- JavaScript 中 call,apply 和 bind
call and apply 改变函数内部this的指向(即函数执行时所在的作用域),然后在所指定的作用域中,调用该函数. function test() {} test() == test.ca ...
- Vue.js - Day4
父组件向子组件传值 组件实例定义方式,注意:一定要使用props属性来定义父组件传递过来的数据 <script> // 创建 Vue 实例,得到 ViewModel var vm ...
- css float布局--右侧上部固定下部自适应大小
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Cordova各个插件使用介绍系列(八)—$cordovaCamera筛选手机图库图片并显示
原文档请看http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/ionic%E5%9B%BE%E7%89%87%E4%B8%8A%E4%B ...