
数据库问题解决方案
摫
这个作者很懒,什么都没留下…
展开
-
Mysql使用WITH RECURSIVE查询树结构
一个查询是能使用一个WITH RECURSIVE,当需要一个sql同时查出节点的上下级节点时,需要值标记一下这条记录是否需要子节点或父节点,使用prev来标记需要父节点,使用sub来标记需要子节点。使用mysql的 WITH RECURSIVE 创建一个递归查询。查询过程中将cte_name当做一张表来处理。数据库中一张表存放树结构。原创 2025-01-07 18:55:13 · 364 阅读 · 0 评论 -
MySql指定排序顺序
MySql指定排序顺序有时我们取数据的时候知道了,要取哪几条,然后想要按照给定的顺序取。可以使用filed函数来自定顺序。SELECT *FROM AWHERE id IN (10997,10998,10999, 11000)ORDER BY FIELD ( id,10999,10998)注意如果field函数不包括某些id的话,这些记录将按照默认顺序排在前面,上例结果为 10997、11000、10999、10998...原创 2022-05-17 20:53:11 · 508 阅读 · 0 评论 -
SQL 带条件的聚合函数
今天遇到一个问题,我需要count带条件的两组数据,这样无法使用where语句进行条件判断select count(a = 1), count(b = 1) from table1 group by ccount(true) 和count (false)都会使计数加一,只有count(null)才不会使计数加一。这样利用case来区分count(1)和count(null)。select count(case a when 1 then 1 else null end) from table1 gr原创 2021-09-06 20:04:37 · 1972 阅读 · 2 评论 -
mysql 使用count()统计不同区间的数量时,用0补全没有数据的区间
统计不同年龄段用户数量,某些区间可能没有用户,需要用0补上,order用来排序。SELECT `range`, sum(num) numFROM (SELECT COUNT(*) AS num, case when age<=30 then '30岁以下' when age<=40 then '30到40岁' when age<=50 then '40到50岁' when age<=60 then '50到60岁' ELSE '60岁以上' END AS `ra原创 2021-02-19 20:08:18 · 1092 阅读 · 0 评论