mysql


2021-07-27

[编程技术] Waiting for table metadata lock问题处理

在使用 mysql 的时候,我们有时会碰到 Waiting for table metadata lock 的锁等待。但是这个锁等待比较特殊,在 innodb_lock_wait 和 show engine innodb status 表里面都查不到。 该锁的影响 还是用例子来展示一下吧,更加简单直观。 ID USER HOST DB COMMAND TIME STATE INFO 1 event_scheduler localhost NULL Daemon 365869 Waiting on empty queue NULL 13006 root localhost NULL Query

2021-06-28

[编程技术] mysql数据库删除重复的数据只保留一条

问题引入 假设一个场景,一张用户表,包含 3 个字段:id,identity_id,name。 现在身份证号 identity_id 和姓名 name 有很多重复的数据,需要删除多余数据只保留一条有效数据。 模拟环境 1、登入 mysql 数据库,创建一个单

2021-05-10

[编程技术] MySQL 正则替换数据:REGEXP_REPLACE 函数

MySQL 正则替换数据:REGEXP_REPLACE 函数 用法 注意:此函数为 MYSQL8.0 版本新增,低于 8.0 版本没有此函数 REGEXP_REPLACE() 函数用于模式匹配。它通过匹配字符来替换给定的字符串字符。 REGEXP_REPLACE(expr, pat, repl[, pos[, occurrence[, match_type]]]) Replaces occurrences in the string expr that match the regular expression specified by the pattern pat

2021-04-19

[编程技术] MySQL 数据库中随机获取一条或多条记录的三种方法

工作中会遇到从数据库中随机获取一条或多条记录的场景,下面介绍几种随机获取的方法供参考。 首先创建个 users 表演示: CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 表中存放30万记录。 1、使用 order by rand() SELECT * FROM users ORDER BY

2021-04-16

[编程技术] Mysql 窗口函数学习

窗口函数是数据库查询中的一个经典场景,在解决某些特定问题时甚至是必须的。个人认为,在单纯的数据库查询语句层面【即不考虑 DML、SQL 调优、索引等进阶】,窗口函数可看作是考察求职者 SQL 功底的一个重要方面。

2021-04-12

[编程技术] 解决所有 MySQL 分类排名问题,实现分组后随机取 n 条数据

对数据库中的记录依据某个字段进行排序是一种常见需求,虽然简单的 Order by 可以胜任,但如果想要输出具体的排名却难以直接实现。如果再考虑重复排名或者分类排名,那么情况就更为复杂。 本文介绍 4 种分类排名方式:子查询

×