简版会员私信表设计及sql 私信列表查询
2018-07-03 01:11:13来源:博客园 阅读 ()
先上下表结构和数据
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的判断操作。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 用PHP实现会员签到分享或者领积分 2019-08-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash