项目中常用高级SQL语句总结

-- 一、获取所有帖子
SELECT DISTINCT bbs.tid,
bbs.title AS 标题,
bbs.content AS 内容,
bbs.username AS 作者,
bbs.creattime AS 发布日期,
-- CONCAT(str1,jstr2)函数用于连接两个字符串形成一个字符串
-- -- CONCAT(5,'/',9),显示出来就是:5/9

-- CAST(expr AS type)函数用于将任何类型的值转换为具有指定类型的值
-- CAST(bbs.clickcount AS CHAR),将int类型的点击数 转为 字符型

-- COUNT(bbsrep.tid)函数用于统计该字段的总数量
-- 整体意思:把帖子包中int型的点击数转换为char型;
-- 先统计帖子回复表中tid的数量
-- 再把中int型的帖子id转换为char型
-- 转为字符类型后,两者在中间使用/连接起来

SELECT DISTINCT bbs.tid,
bbs.title AS 标题,

CONCAT(
CAST(bbs.clickcount AS CHAR),
'/',
CAST(COUNT(bbsrep.tid) AS CHAR))
AS 点回

-- 这里显示到html就是带链接的图片
CONCAT('<a href=display.html?id=',
CAST(bbs.tid AS CHAR),
'><img src=''../pic/33.jpg'' width=''20px''/></a>') 
AS 查看

FROM bbs 

-- 从表 (bbsrep) 那里返回所有的行
-- ON后面是限制条件:只返回回复表中的帖子id=帖子表中的帖子id
-- 意思就是:获取回复表中所有属于该条帖子的回复
LEFT JOIN bbsrep ON bbs.tid=bbsrep.tid 

-- GROUP BY会根据帖子表自己的id来排序
GROUP BY bbs.tid




select * from bbs

SELECT DISTINCT 
bbs.title AS 标题,
bbs.username AS 作者,
bbs.creattime AS 发布日期,
bbs.class AS 分类,
bbs.content AS 内容
FROM bbs WHERE tid='1'

-- COUNT(bbsrep.tid统计总回复数

SELECT DISTINCT 
bbs.title AS 标题,
CONCAT(
CAST(bbs.clickcount AS CHAR),
'/',
CAST(COUNT(bbsrep.tid) AS CHAR))
AS 点回,
CONCAT(
'<a href=display.html?id=',
CAST(bbs.tid AS CHAR),
'><img src="../pic/33.jpg" width="20px"/></a>') 
AS 查看
FROM bbs 
LEFT JOIN bbsrep ON bbs.tid=bbsrep.tid 
GROUP BY bbs.tid


-- 二、获取某个帖子详情sql
-- 从两个三个表中一起获取数据


-- 增加点击数
update bbs set clickcount=clickcount+1  where tid=3;

update history set username='小红红'  where username='红红' ;
update history set username='红红'  where sessionID='513CFEDC813A3E0BB091F1A0A4C50D93'


-- 获取帖子的回复内容、评论人、头像、时间、点击
SELECT DISTINCT 
bbsrep.replycontent,
bbsrep.replyusername,
bbsrep.replytime,
bbsrep.click,
`user`.avatar5
FROM bbsrep
LEFT JOIN `user` ON bbsrep.uid=`user`.uid
WHERE tid=1 AND fid=1
GROUP BY bbsrep.rid



SELECT * FROM bbsrep WHERE tid=1
LEFT JOIN `user` ON bbsrep.uid=`user`.uid



SELECT DISTINCT 
bbs.tid,
bbs.title AS 标题,
bbs.author AS 作者,
bbs.pic AS 照片,
bbs.creattime AS 发布日期,
bbs.class AS 分类,
bbs.content AS 内容,
`user`.avatar
FROM bbs
LEFT JOIN `user` ON bbs.uid=`user`.uid
where tid='1'


SELECT title,pic,clickcount,replycount FROM bbs 

SELECT avatar FROM `user` WHERE username=520

select tid,uid from collect where tid=1 and uid=1;
 
DELETE FROM collect WHERE tid=1 and uid=1;
 
--  查询该用户的收藏文章
SELECT bbs.tid,title,pic,clickcount,replycount 
FROM bbs
LEFT JOIN collect ON bbs.tid=collect.tid
WHERE collect.uid=1
 
 insert into student(sno,sname,born,photo) values(?,?,?,?)
 
SELECT tid,title,pic,clickcount,replycount FROM bbs 
 
--  UPDATE 表名 SET 字段1=值, 字段2=值 WHERE username=值;



SELECT * FROM history

update history set lefttime='2022-05-11 01:17:16' where sessionID='44F875FF27E78E7EC4DA2FB4C55E4358'



 
 

猜你喜欢

转载自blog.csdn.net/weixin_45947938/article/details/125047153