Mysql
良心有约
人人为我,我为人人
展开
-
Mysql实现随机查询一条或多条记录
需求1.数据量超过10W+;2.能够在0.0秒内(100ms)完成数据的查询;3.能够实现良好的随机效果。数据量小的方案SELECT * FROM `st_poetry` ORDER BY RAND() LIMIT 1;网上现有方案网上以下两种思路对数据库表有强制要求,否则无法实现随机效果(表的ID必须为连续自增长的正整数)方案一:SELECT * FROM `st_poetry`WHERE id >= (SELECT floor( RAND() * ((SE原创 2021-01-08 15:11:00 · 5451 阅读 · 0 评论 -
Mysql判断当天与一天之内的日期
有如下需求:查询当天的数据; 查询一天之内的数据实现如下:-- 查询一天之内的日志数量-- liangxin 2020-09-18select count(id) from sys_log liangxin where TIMESTAMPDIFF(day, liangxin.create_date,now()) = 0;-- 查询当天(零点之后)的日志数量-- liangxin 2020-09-18select count(id) from sys_log liangxi原创 2020-09-18 11:03:59 · 1359 阅读 · 1 评论 -
设置Mysql中select字段不一定包含于Group by字段列表中(ONLY_FULL_GROUP_BY)
查询本地sql_modeselect@@sql_mode;查询是否包含:ONLY_FULL_GROUP_BY修改Mysql设置:SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_...转载 2019-12-03 14:42:40 · 1550 阅读 · 1 评论 -
2种方式实现Mysql允许非本机以ROOT用户登录
在首次安装Mysql后,一般需要在远程的机器上进行相关操作,而使用内置的ROOT用户登录时,往往因为没有权限而导致无法登录。当然也出于安全考虑,不允许非本机直接访问ROOT用户,但对于数据库管理员来说,极为不便。以下通过授权的方式实现ROOT用户的远程访问。1.直接授权GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234...原创 2019-08-22 10:57:35 · 6345 阅读 · 1 评论 -
Mysql流程控制语句大全(含循环)
Mysql中的流程控制语句包括:CASE IF ITERATE LEAVE LOOP REPEAT RETURN WHILEMySQL不支持FOR loops循环LOOP循环[begin_label:] LOOP statement_listEND LOOP [end_label]CREATE PROCEDURE doiterate(p1 INT...翻译 2019-08-06 15:10:07 · 1359 阅读 · 0 评论 -
根据当前节点获取所有父节点(不包含当前节点)
CREATE DEFINER=`root`@`localhost` FUNCTION `sys_get_parent_list_f`(rootId varchar(64)) RETURNS varchar(21845) CHARSET utf8BEGIN -- 根据当前节点获取所有父节点(不包含当前节点)-- 梁新 2019-08-06DECLARE fid varchar(64) de...原创 2019-08-06 14:48:14 · 985 阅读 · 0 评论 -
Cause: java.sql.SQLException: Row 3769 was cut by GROUP_CONCAT()问题决绝
很显然为长度不足导致第一步:直接设置大小:SET GLOBAL group_concat_max_len=10240000;SET SESSION group_concat_max_len=10240000;或者SET GLOBAL group_concat_max_len=-1; -- 最大值SET SESSION group_concat_max_len=-1 -...原创 2019-07-31 15:15:14 · 1763 阅读 · 1 评论 -
【Mysql】1130-host xxx.xxx.xxx.xxx is not allowed to connect to this MySql server
解决方法:改表法更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"update user set host = '%' where user = 'root';flush privileges;授权法GRANT ALL PRIVILEGES ON *.* TO 'xxx.xxx.xxx.xxx' @'%' I...原创 2019-05-13 14:11:50 · 177 阅读 · 0 评论 -
Mysql date_format()日期格式大全
用例:DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')DATE_FORMAT(NOW(),'%m-%d-%Y')DATE_FORMAT(NOW(),'%d %b %y')DATE_FORMAT(NOW(),'%d %b %Y %T:%f')格式通配符: 格式 描述 %a 缩写星期名 %b 缩写月名 %...转载 2019-04-16 10:21:17 · 1037 阅读 · 0 评论 -
Mysql中定时事件
查询是否开启定时事件-- 方式1SELECT @@EVENT_SCHEDULER; -- 方式2SHOW VARIABLES LIKE 'EVENT_SCHEDULER';开启定时事件-- 方式1SET GLOBAL EVENT_SCHEDULER=1;-- 方式2SET GLOBAL EVENT_SCHEDULER = ON;...原创 2019-04-11 10:20:04 · 260 阅读 · 0 评论 -
Mysql中五种整型数据类型的区别INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
Mysql中共有5种标识整型的数据类型,其按照可表示的数据范围从小到大依次为:TINYINT<SMALLINT<MEDIUMINT<INT<BIGINTMySQL支持标准的SQL语法,整型包括INTEGER(简写INT) 及SMALLINT。作为扩展,MySQL也支持TINYINT,MEDIUMINT, 及BIGINT等整型,详见下表:类型 存储 ...翻译 2019-02-14 13:57:20 · 1515 阅读 · 0 评论 -
【官方原版翻译】DECLARE ... HANDLER语法
本文仅适用于MySQL 5.7DECLARE handler_action HANDLER FOR condition_value [, condition_value] ... statementhandler_action: CONTINUE | EXIT | UNDOcondition_value: mysql_...翻译 2019-01-21 17:32:37 · 1642 阅读 · 0 评论 -
【官方】Mysql中注释的规范写法(全部)
注释语法MySQL数据库服务器支持三种注释语法: 从一个 # 到行末。 从两个连续横杠 -- 序列到行尾。 在MySQL中, - (两个连续横杠 )注释样式要求第二个破折号后跟至少一个空格或控制字符(例如空格,制表符,换行符等)。 此语法与标准SQL注释语法略有不同。 从一个 /* 顺序到下一个* /结束, 此语法使注释能够扩展到多行,因为开始和结束序列不必位于...翻译 2018-12-26 11:55:14 · 10327 阅读 · 1 评论 -
【官方】Mysql5.6中执行动态SQL
【官方】执行预处理SQL语句说明:本文未经作者书面授权,禁止转载、复制等。MySQL 5.6为服务器端预处理语句提供支持。 此支持利用了高效的客户端/服务器二进制协议。 将带有占位符的预准备语句用于参数值具有以下好处: 每次执行时解析语句的开销更少。 通常,数据库应用程序处理大量几乎相同的语句,只更改子句中的文字或变量值,例如查询和删除的WHERE,SET为更新和插入的VALUES。...原创 2018-12-26 11:04:54 · 2415 阅读 · 0 评论