
数据库
安達と島村
学习记录用,可能有错误的地方
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql的true和false和null的关系
select null or true,null or false,null and true,null and false,not null;null or true=truenull or false=null and true=null=not nullnull and false=false原创 2020-09-14 23:18:42 · 1618 阅读 · 0 评论 -
检索一个表的多个字段并做映射
属性表ATTR里部分结构如下(此表有n条数据)idname1男2女3汉族4其他民族11外国人……用户属性表USERATTR里部分结构如下ida1a2…a30124…112null3…null……………现在需要检索用户的30个属性对应的名字方法1:把select case a1 when c1 then c2 end from tmp1 where a1 =c1)原创 2020-07-21 19:04:45 · 399 阅读 · 0 评论 -
postgresql_删除表里超过数量的某些数据
task表里有多个企业的task,select r1,flg,r2,task_pk from (select row_number() over(partition by task_id) as r1,* from (select (case when it.r2=1 or it.enabled =false then false else true end) flg,* from (select row_number() over(partition by task_name order原创 2020-07-18 15:13:06 · 1299 阅读 · 0 评论 -
postgresql的WITH RECURSIVE实现递归
原文地址:http://www.jasongj.com/sql/cte/with as可以把结果集暂存,下面两个sql的结果是一样的(顺序不一样)with r1 as (select * from users),r2 as (select * from employees)select r2.* from r1 inner join r2 on r1.user_pk=r2.user_pk where r1.user_type<>'1'select employees.* from原创 2020-07-17 12:32:15 · 1383 阅读 · 0 评论 -
postgresql日期和时间比较
DB里保存到时分秒,需要和年月日比较。select date_trunc('day',now())=date_trunc('day',date('20200615')) --trueselect date_trunc('day',date('20200611')) --2020-06-11 00:00:00+00select * from mst_users where date_trunc('day',last_login_dt)=date_trunc('day',date('202原创 2020-06-15 13:50:42 · 22032 阅读 · 0 评论 -
postgresql的数组函数
select array_agg(study_start_dt) from t1 --where study_start_dt is not null--{2,1,1,1,65681,65685,65687,65690,65692,65694}--{NULL,NULL,"2020-06-05 14:56:29.066",NULL,"2020-06-04 09:36:49.717","2******}检索满足条件的study_start_dt,拼成一个arrayselect (select arra原创 2020-06-15 13:38:57 · 1967 阅读 · 0 评论 -
postgresql分页查询和OVER的用法
分页查询需要返回指定范围的数据和总数据量,用下面的sql语句可以一次查询到。select count(1) over() ,* from companies where pk>2 order by pk desc limit 3 offset 2返回值是[{8,company1},{8,company2},{8,company3}]。数据库一共10条数据,where条筛选出8条,li...原创 2020-04-30 18:15:01 · 4039 阅读 · 0 评论 -
多表查询让从表只返回一条多种方法排序后数据
ab两表关联查询,a有个flg字段,对于a的每条数据b有0-n条数据,要求b只返回一条数据,如果a的某fl为true,则返回b的id最小的数据;如果a的某flg为false,则随机返回b的一条数据。使用表t2进行自连接测试,数据如下SELECT * FROM s2;idabf111122203131434053...原创 2020-02-17 21:30:24 · 771 阅读 · 0 评论 -
某树状结构排序
对象Q有pk,亲pk和表示顺3个属性,它的实例组成list,现在需要按树状结构(按亲->子,同级再按表示顺小到大)排序。逻辑部分:function testNum(qs,orderedList){ //非逻辑部分,简单测试用 console.log('length-->',qs.length,orderedList.length) if(qs.length!=order...原创 2020-01-14 20:57:08 · 803 阅读 · 0 评论 -
mysql递归查找父节点
参照https://blog.youkuaiyun.com/weixin_35756522/article/details/8187653s2表结构如下:set @a=6;select @a as _id,(select @a:=a from s2 where id=_id) as pidfrom s2 where @a<>1;或者select @a as _id,(select @...原创 2020-01-07 00:21:44 · 4892 阅读 · 0 评论 -
mysql游标和存储过程笔记
原贴:https://www.cnblogs.com/progor/p/8875100.html如果你前面看过mysql函数,会发现无法使用返回多行结果的语句。但如果你又确实想要使用时,就需要使用到游标,游标可以帮你选择出某个结果(这样就可以做到返回单个结果)。另外,使用游标也可以轻易的取出在检索出来的行中前进或后退一行或多行的结果。游标可以遍历返回的多行结果。补充:Mysql中游标只适...原创 2020-01-01 21:09:33 · 216 阅读 · 0 评论 -
mysql笔记
读锁(共享锁,s锁):是一种共享锁,一个会话持有表a的读锁时,不会阻塞其它会话请求表a的读锁和当前会话请求表a的写锁,会阻塞其它会话请求表a的写锁。当前会话对表a写数据会报错,其他会话对表a写数据会阻塞;写锁(排它锁,X锁):是一种排他锁,一个会话持有表a的写锁时,会阻塞其它会话请求表a的读/写锁,不阻塞当前会话请求表a的读/写锁,如果当前会话请求读锁则释放写锁加上读锁。一个会话对表a加了读...原创 2019-12-22 16:56:23 · 295 阅读 · 0 评论 -
mysql的explain相关的笔记
key_len:copy from https://www.cnblogs.com/lukexwang/articles/7060950.htmlkey_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在组合索引的时候,判断该索引有多少部分被使用到非常重要。在计算key_len时,下面是一些需要考虑的点:索引字段的附加信息:可以分为变长和定长数据类型讨论,当索引字段为定...原创 2019-12-18 08:38:13 · 117 阅读 · 0 评论