
数据库
数据库
·氓
让花成花,让树成树
展开
-
【mysql】mysql查询结果添加固定值
可直接使用默认值和别名设置selectfield1,field2,'默认值'field3 from user例如:select id,nickname,"PHP" language,1 type from user原创 2021-07-20 17:11:32 · 2950 阅读 · 0 评论 -
mysql 输出为null时转换成0的需求以及ifnull基本用法
在进行mysql开发的时候时常遇到要将null 显示为我们需要的数据,这个时候就可以使用ifnull函数,下面将讲解基本用法,和针对多表关联以及配合group by 的情况下怎么解决:IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。IFNULL() 函数语法格式为:IFNULL(expression, alt_value)1如果第一个参数的表达式 expression 为 NULL,则返回第二个参数转载 2021-07-12 13:16:41 · 2364 阅读 · 0 评论 -
mysql 一个表中的字段like另一个表中的字段
select a.name,b.company from a a,b b where a.tag like '%'||b.tag||'%'select a.name,b.company from a a,b b where a.tag like concat ('%',b.tag ,'%')select a.name,b.company from a a,b b where a.tag like '%' +b.tag +'%'原创 2021-07-12 13:14:21 · 7200 阅读 · 0 评论 -
SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn‘t match value
是插入2条数据,字段没有保持一致。$data = [ ['title'=>'斗破苍穹','author'=>'天蚕土豆','content'=>'晋级斗圣!!!'], ['title'=>'斗罗大陆','author'=>'唐家三少'], ]; app('db')->table('test')->insert($data);第二条数据的 content 要给值$data = [ ['title'=>'斗破苍穹',转载 2021-07-09 17:30:13 · 2271 阅读 · 0 评论 -
PHP implode分割数组后加引号
在使用implode分割字符串后,直接用mysql进行查询时,拼接后的字符串不带引号,会报字段找不到的错误,如下:$str = implode(',',array('张三','李四','王五'));$res = DB::select("SELECT `user`.username,`user`.mobile FROM `user` WHERE `user`.username NOT IN (".$str.") ;"); 报错信息:SQLSTATE[42S22]: Co...转载 2021-01-09 10:33:14 · 796 阅读 · 0 评论 -
Mysql:把指定数据行排在前面
如果只是一条数据行,可以这样:SELECT * FROM user ORDER BY user_id<>7,score DESC;主要是“user_id<>7”,就会把用户id为7的排在前面。如果是多条数据行:SELECT * FROM user ORDER BY user_id NOT IN(7,8,9),score DESC;...转载 2020-11-13 13:24:41 · 2863 阅读 · 2 评论 -
tp6-更新数据时追加数据
旧数据:aaa,追加bbb,更新后为aaabbb原生写法:update表名set字段名=concat(字段名,"要增加的数据")where条件值tp6写法:TableName::update(['status' => 2, 'info' => \think\facade\Db::raw("concat(info,'bbb')")], ['id' => 1]);...原创 2020-07-10 18:55:51 · 3323 阅读 · 0 评论 -
【MySQL优化】——看懂explain
explain explain模拟优化器执行SQL语句,在5.6以及以后的版本中,除过...转载 2020-01-16 15:53:15 · 504 阅读 · 0 评论 -
windows 下 MySQL 表名大写自动变小写
在 windows 下,使用Navicat新建数据库,过程中发现表名不能用大写字母,无论使用Navicat视图新建还是使用了大写字母的建表语句,都会被自动转成小写。查找资料发现是因为windows系统对大小写不敏感,需要在mysql的配置文件中设置大小写敏感,在 MySQL 的配置文件 my.ini中加入:lower_case_table_names=0然而重启mysql报错:...原创 2019-12-31 11:27:24 · 3155 阅读 · 3 评论 -
mysql Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause
问题:在项目中使用group by报错:mysql版本为5.7原因分析:查找资料发现MySQL 5.7.5和up实现了对功能依赖的检测。如果启用了only_full_group_by SQL模式(在默认情况下是这样),那么MySQL就会拒绝选择列表、条件或顺序列表引用的查询,这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们。(在5.7.5之前,MySQL没有检测到功...原创 2019-12-31 11:09:52 · 725 阅读 · 0 评论 -
MySql中的CAST
cast()是一种数据类型转换的函数,函数将任何类型的值转换为具有指定类型的值,语法格式如下所示:CAST ( expressionASdata_type)expression:任何有效的MySQL表达式或者一些字符串数据。AS:用于分隔两个参数,在AS之前的是要处理的数据,AS之后是要转换的数据类型。data_type:系统所提供的数据类型,这里不能使用用户定义的数据...原创 2019-12-27 09:35:05 · 1756 阅读 · 1 评论 -
MySQL 默认最大连接数
查看最大连接数:show variables like '%max_connections%';一般 MySQL 默认的最大连接数在 150 左右。最大连接数一个还只是一个指标,cpu,内存,磁盘,网络等物理条件都是其运行指标,这些指标都会限制其并发能力!所以,一般 3000 的并发请求就能打死大部分数据库了。查看已连接:show full processlist;修...原创 2019-12-12 17:02:32 · 392 阅读 · 0 评论 -
mysql 使用sum()小数点后出现很多位
数据库字段使用float类型,使用sum函数相加后出现后多小数位,原因是浮点数的不准确本质,它们无法以准确值保存在计算机体系结构中方法一:最好的办法是将float字段改为decimal。具体方法:可设置一个临时字段,结合MySQL的关键字binary进行准确复制等。方法二:使用binary关键字解决。具体操作为“select sum(binary 字段名(float类型))”方法三:C...原创 2019-12-10 16:41:48 · 13172 阅读 · 0 评论 -
mysql给text设置一个默认值
这周有个需求里面原先是用redis的,但是后面经同事介绍说明,决定还是用mysql,当时想在表里面加一个text字段,但是考虑到程序其他地方会不会有对该表的插入操作,所以不经思索的就说给text字段加一个默认值,但是同事说不行,text字段不能有默认值。这才仔细想来好像自己也从没有给text字段设置过默认值。除了text字段不能默认值,还有哪些字段也不能设置默认值?Mysql5.7版本:B...转载 2019-11-28 13:55:49 · 9357 阅读 · 0 评论 -
【Linux】php连接mysql8报错:The server requested authentication method unknown to the client
刚装完数据库,php连接数据库时报错:The server requested authentication method unknown to the client查找资料发现从Mysql5 到Mysql8启用了新的加密方法。解决办法1:修改mysql配置文件my.cnf 使数据库启用兼容的加密方式vim /usr/local/etc/my.cnf在最下面新增...原创 2019-05-14 16:22:21 · 1472 阅读 · 0 评论