MySQL在插入完一条数据库后,要知道插入的行的ID 使用来实现,代码如下: INSERT INTO t_table (col1, col2,...) VALUES ('val1', 'val2'...); SELECT LAST_INSERT_ID(); 以上会查询出最后一个insert出来的数据的ID,而且不用担心多用户访问问题,它是根据你的connection(session)来控制的,只会得到你这个连接状态下的最后一个insertId,如果其他人(或者客户端程序)也连着数据库操作,是相互不受影响的。

2022-08-18 0条评论 680点热度 0人点赞 admin 阅读全文

MySQL中使用函数,给时间日期增加时间间隔,相应的,就是减少时间间隔。 date_add示例如下: select now(); -- 当前时间 select date_add(now(), interval 1 day); -- 加1天 select date_add(now(), interval 1 hour); -- 加1小时 select date_add(now(), interval 1 minute); -- 加1分钟 select date_add(now(), interval 1 second…

2022-08-17 0条评论 372点热度 0人点赞 admin 阅读全文

有时候需要在MySQL服务器层面去查找sql的执行记录,例如有多个应用的时候,希望看到MySQL的SQL执行情况。 执行SQL命令: SHOW VARIABLES LIKE 'general%'; mysql> SHOW VARIABLES LIKE 'general%'; +------------------+---------------------------------+ | Variable_name | Value | +------------------+------------------…

2022-08-13 0条评论 616点热度 0人点赞 admin 阅读全文

MySQL中select查询出来结果希望按照某个字段的内容且指定的顺序,之前有类似的需求,按照指定内容排序,详见:https://blog.terrynow.com/2021/02/23/sql-order-by-specfic-value/ 另一种情况,比如要查一组数据in某一个数组中,但是按照指定数组的顺序排序,例如: select * from table where id in (1,5,4,3) 我们希望出来的结果,也是按照id给定的顺序:1,5,4,3来排序 MySQL可可以使用order by fie…

2022-08-10 0条评论 385点热度 0人点赞 admin 阅读全文

出于安全考虑,Oracle下的新建的用户是有有效期限制的,过了有效期,账号就会被lock锁住(例如报错:ORA-28002: the password will expire within 7 days),如果真有一些情况(例如测试环境)是不需要设定有效期呢? Oracle给用户是分Profile的,所以密码策略也是根据profile来启用的。 先来查一下某个用户的Profile: -- 查看某个用户所在的Profile select username, profile, account_status from d…

2022-07-29 0条评论 458点热度 0人点赞 admin 阅读全文

开发中需要导出数据库结构说明文档交付给客户或者拿出来讨论等,如果手工去写的话,还是比较费劲的,不过可以使用screw来自动生成,如下图所示,是利用screw自动生成的数据库说明文档。 一、数据库支持 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB 二、配置 1、pom文件 引入screw核心包,HikariCP数据库连接池,HikariCP号称性能最出色的数据库连接池。 <!-- screw核心 --> <dependency>…

2022-07-22 0条评论 721点热度 0人点赞 admin 阅读全文

使用MongoDB统计某个字段(Field)出现相同个数的情况,例如:统计某个泄露数据库前20的相同密码次数的情况。 使用MondoDB的aggregate或者mapreduce来实现,举例: db.some_collection.aggregate( [ { $group: { _id: "$password", count: { $sum: 1 } } }, { $sort: { count: -1 } }, { $limit: 20 } ] ) 或者: db.runCommand({ 'mapreduce':…

2022-07-15 0条评论 356点热度 0人点赞 admin 阅读全文

Oracle的SQL语句中,需要连接多个字段(或者其他文本等变量)组成一个新的字符串。 如果是连接2个字段,那么可以使用concat: SELECT concat('A','B') from dual; select concat(col1, col2) from t_table; concat如果是要连接多个字段或者文本,就不行,Oracle下可以使用连接符: SELECT ('A'||'B'||'C') as new_col from dual; select col1||col2||col3 from t_t…

2022-07-08 0条评论 460点热度 0人点赞 admin 阅读全文

平时使用SQL的select ... in 的时候,一般来说都是查某个单个字段in一个数组(或者子查询中得到的一个单独的列的数据) 如果要查询多个字段in一个多维数组呢? 可以这样做:用引号,中间用都逗号隔开,来作为多个字段。示例如下: -- 可以兼容 PostgreSQL, Oracle, MySQL, DB2, HSQLDB SELECT * FROM table1 WHERE (col1, col2) IN ((val1a, val2a), (val1b, val2b), ...); -- in 后面的可以用…

2022-07-06 0条评论 395点热度 0人点赞 admin 阅读全文

MySQL下对数据表数据做分组,并显示每一组的第一行(具体怎么算每组的第一行数据,可以根据order by某一字段) 思路:可以先用 查出ID列表然后作为子查询条件再去select原表,具体SQL如下(这个办法需要一个主键ID(primary_key)或唯一键unique_key): SELECT column1, column2 FROM table1 WHERE id IN ( SELECT min(id) FROM table1 GROUP BY column1 ); 另一种办法如下(不需要主键或者uniqu…

2022-06-28 0条评论 462点热度 0人点赞 admin 阅读全文
123456