
sql
liukai6
这个作者很懒,什么都没留下…
展开
-
Specified key was too long; max key length is 767 bytes
系统变量innodb_large_prefix开启了,则对于使用DYNAMIC或COMPRESSED行格式的InnoDB表,索引键前缀限制为3072字节。如果禁用innodb_large_prefix,不管是什么表,索引键前缀限制为767字节。很明显是索引超出了限制的长度767(我司生产上innodb_large_prefix禁用了):我发现报错的那张表建立了一个varchar类型的索引,varchar(255),觉得没什么问题,其实不然,上述的767是字节,而varchar类型是字符,同时我发...原创 2020-08-07 19:12:40 · 251 阅读 · 0 评论 -
使用sql的CASE语句
SELECT ds AS 日期 ,operate as 充值类型 ,SUM(realcardnum) AS 总的 ,sum(CASE operate WHEN '22' THEN realcardnum ELSE 0 END) 类型1 ,sum(CASE operate WHEN '12' THEN realcardnum ELSE 0 END) 类型2 ,sum(CASE operate WHEN '15' THE原创 2020-05-14 17:27:23 · 213 阅读 · 0 评论 -
想要获取对应分组某个值的所有值使用group
select mainbody,group_concat(ds) from active_uids group by mainbody;sql使用group by 进行分组的时候查找该组的id只会返回一个,只需使用group_concat(id)即可以获得该组的所有id。原创 2020-05-09 16:04:22 · 610 阅读 · 0 评论 -
快速的将数据库表的注释内容字段导出
SELECT COLUMN_NAME as 字段名称, COLUMN_TYPE as 数据类型, if(COLUMN_KEY='PRI','Y','N') as 主键, COLUMN_COMMENT as 备注FROM INFORMATION_SCHEMA. COLUMNSWHERE table_schema = '数据库名称'AND table_name = '数据表名称'...原创 2020-04-21 10:49:24 · 1351 阅读 · 0 评论 -
sql查询替换值的操作
select mainbody, (case mainbody when 1 then "未完成" when 2 then "已完成" else "其他" end)from base_info;原创 2020-04-17 21:43:15 · 1545 阅读 · 0 评论 -
sql中的if语句
select if(money>0,money,0) from tmz_userinfo;需要注意的是money>0就显示money,条件不成立就显示0原创 2019-02-13 15:15:13 · 5716 阅读 · 0 评论 -
sql优化的一些建议
如有错误,望纠正对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from table_name where num is null最好不要给数据库留NULL,尽可能的使用 NOT NULL填充...原创 2019-04-02 23:25:27 · 206 阅读 · 0 评论 -
sql中的in和exists的区别和用法
in和existsin是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的。如果查询的两个表大小相当,那么用in和exists差别不大;如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in;例如:表A(小表),表B(大表)select * from A where...原创 2019-04-01 23:28:31 · 384 阅读 · 0 评论 -
mysql修改密码的方法
方法1: 用SET PASSWORD命令首先登录MySQL。格式:mysql> set password for 用户名@localhost = password(‘新密码’);例子:mysql> set password for root@localhost = password(‘123’);方法2:用mysqladmin格式:mysqladmin -u用户名 -p旧密码...原创 2019-04-22 00:09:54 · 209 阅读 · 0 评论 -
sql的alter语法
sql修改字段长度的语法:alter table 表名 modify 字段名 字段类型;sql插入新增字段:alter table 表名 add 字段名 字段类型alter table + 表名 + add + 要添加的字段 字段类型 + after + 要跟随的字段名...原创 2019-04-22 17:49:41 · 1312 阅读 · 0 评论 -
查看mysql数据库所占空间大小
mysql数据库所占空间大小查询select concat(round(sum(DATA_LENGTH)/1024/1024+sum(INDEX_LENGTH)/1024/1024),'M') from information_schema.tables where table_schema='database_name';mysql数据表所占空间的查询由于数据太大了。所以MYSQL需要...原创 2019-04-15 13:43:46 · 1213 阅读 · 0 评论 -
BIGINT UNSIGNED value is out of range in
出现这种情况,是sql在计算中出现的负值,而我们在创建数据库的时候不允许复制出现,将不允许非负的参数勾选掉就可以了原创 2019-04-18 14:31:49 · 1072 阅读 · 0 评论 -
sql的批量更新的操作
mysql 批量更新共有以下四种办法1、.replace into 批量更新replace into test_tbl (id,dr) values (1,’2’),(2,’3’),…(x,’y’);2、insert into …on duplicate key update批量更新insert into test_tbl (id,dr) values (1,’2’),(2,’3’),…...原创 2019-04-25 18:26:33 · 18313 阅读 · 1 评论 -
对没有主键的表,进行追加主键
对已生成的表追加主键我们要做追加主键。正确写法:alter table table_name add column id int primary key auto_increment not null;注意:id后应紧跟int(属性)生成的主键在最后的位置,自己调整下顺序...原创 2019-09-29 21:10:06 · 1040 阅读 · 0 评论 -
sql中小数的处理函数
trunc(value,precision)按精度(precision)截取某个数字,不进行舍入操作。round(value,precision)根据给定的精度(precision)输入数值。ceil (value) 产生大于或等于指定值(value)的最小整数。floor(value)与 ceil()相反,产生小于或等于指定值(value)的最小整数。sign(value) 与绝对值函...原创 2019-02-13 14:55:09 · 1689 阅读 · 0 评论 -
死锁产生的四个必要条件
死锁产生的四个必要条件互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放不剥夺条件:指进程已获得的资源,在未使用完之前,不能被...原创 2019-02-02 10:40:51 · 572 阅读 · 0 评论 -
mysql5.7安装遇到的问题总结,持续更新
mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.我们这样解决 mkdir /var/log/mariadb touch /var/log/mariadb/mariadb.log chown原创 2017-11-08 17:38:28 · 14177 阅读 · 0 评论 -
使用truncate删除表
删除表的操作在我们想要完全删除一张表表,而且是想获得一张干干净净的表,那么我们就需要 这个命令 truncate table-name 这个命令其实是删除一张表,然后重新创建了,我们删除的那张表.原创 2017-11-17 10:56:12 · 1196 阅读 · 0 评论 -
windows安装mongoDB
在window下安装mongoDB我们已经将文件已经安装,但是怎么打开服务.安装官方文档,需要创建一个数据存储目录 mkdir D:\data\db这个时候我们可以启动mongod.exe服务了 mongod.exe --dbpath "D:\data\db" 然后看下你创建的文件夹目录是否有了内容.记住要用管理员权限来运行接下来我们连接mongoDB启动mongo.exe服务 mon原创 2017-11-18 11:07:50 · 243 阅读 · 0 评论 -
SQLSTATE[08006] [7] FATAL: no pg_hba.conf entry
SQLSTATE[08006] [7] FATAL: no pg_hba.conf entry 在使用PostgreSQL的时候出现这种错误,需要想到的是该查询ip是否是PostgreSQL所许可的地址访问的原创 2017-11-06 14:55:49 · 2985 阅读 · 0 评论 -
laravel中复杂的sql查询
laravel中使用原生查询的方法在laravel中有许多很复杂的查询使用原生的sql很容易查询,但是用自带的就很难写出来.这个时候 我们在(一定要注意sql注入)的情况下使用select();方法将原生sql传入该方法完成查询也是可以的. 重要的事情说三遍注意sql注入,sql注入,sql注意.原创 2017-11-16 17:36:43 · 2036 阅读 · 0 评论 -
在mysql中使用去重distinct需要注意的
在mysql中使用去重distinct在使用distinct我们需要主要distinct需要放置在查询字段的开头 select distinct name from user;同时如果在后面跟多个字段的时候,关键词会对后面的所有字段生效.去求多个字段重复的,不能满足我们需求.这个时候我们可以配合group by来完成,下面我下有个例子: select * count(distinct na原创 2017-12-20 21:38:02 · 3479 阅读 · 0 评论 -
laravel中ORM使用
在laravel中使用ORM首先一定要链接好数据库,不然一切都是空谈然后通过artisan命令创建Eloquent模型 php artisan make:model table_name 这里我们并没指明表和Eloquent ORM的对应关系,默认是单复数对应,对应到table_names上;同时你也可以修改table_name中$table属性.如果你想生成数据库迁移表需要添加参数:原创 2017-12-16 10:46:32 · 1058 阅读 · 0 评论 -
windows系统中如何给php7安装mongoDB的驱动
在windows中增加扩展有时候是一个麻烦的事情.会由于找不到合适的包给我造成不小的困扰下面我来为大家介绍我踩的坑首先我们要在php扩展的网站http://pecl.php.net/ 搜索我们需要扩展mongoDB.这个时候选择上面那个 然后我们点击进去选择合适的版本如下图: 这里我们需要抓药的state那一列我们需要选择的stable稳定版,同时在下载链接处,我也进行 标红,前面的适合服务器原创 2017-12-25 18:29:43 · 894 阅读 · 1 评论 -
在执行mysql数据备份的时候mysqldump
当我们执行mysqldump出错的时候,报下面错误: Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you原创 2018-01-22 11:46:30 · 799 阅读 · 0 评论 -
SQLSTATE[HY000] [2002] Permission denied (SQL: select * from `branch`)
在mysql报出该权限错误我们在这个时候不能只想着权限的错误,而且要对自己的配置文件进行仔细的检查或者对,错误日志进行分析处理.如果配置文件读取多无地址什么的密码账号读取错误也会出现这样的错误. 在这里一定要将视野放的开一点才能进行更好的错误处理. SQLSTATE[HY000] [2002] Permission denied 不要仅仅被这句话骗到原创 2018-01-23 15:27:38 · 3954 阅读 · 1 评论 -
laravel查询数据库(两个字段相等查询方法)
在laravel查询中,我们需要查找两个字段相等的值,但是使用 1. $first_agent = DB::connection('mysql_branch')->table('branches') ->where('gameid',$gameid) ->whereRaw('branchp','branch')->get(); 这种方法不行原创 2018-02-01 12:08:51 · 5813 阅读 · 0 评论 -
简单安装mysql的方式-rpm包安装
首先卸除之前rpm的依赖rpm -qa |grep -i mysql rpm -qa |grep - i mariadb 一般情况下linux会默认安装mariadb我们需要使用命名清除rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64 这里注意是搜索到的包名 然后按顺序执行rpm -ivh 包名mysql-community-common-5原创 2018-04-02 21:11:39 · 240 阅读 · 0 评论 -
mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-4
如果mysql报如下错误mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.21-1.el7.x86_64这个时候需要解决的是将已经安装的rpm报卸载. 通过rpm -qa |grep -i mysql或者是rpm -qa |grep -i mariadb 如果找到那个执行 rpm -e原创 2018-04-02 21:15:05 · 24900 阅读 · 1 评论 -
configure:error:readline library not found
在对PostgreSQl进行安装时,报错.缺少依赖的readline library 这个时候我们 yum -y install readline*来解决这个问题原创 2017-11-08 16:43:33 · 1376 阅读 · 0 评论