mysql
叶先生i
精致的程序猿一枚
展开
-
MySQL解决唯一索引列与逻辑删除冲突问题
需求:如数据表 users ,列分别为id,user_name,age,create_at,delete_at要实现以user_name(用户名)为唯一索引,并支持软删除,以delete_at(删除时间)不为空为标识;问题:同一个表中会存在多条user_name相同的行,与唯一索引冲突;解决方案:以 user_name 和 delete_at 建立组合唯一索引alter table users add unique index uidx(user_name,delete_at);当dele原创 2022-04-19 23:10:48 · 2045 阅读 · 2 评论 -
MySQL主从复制、主主复制【MySQL 5.7,Docker】
环境准备我们需要准备两台Mysql,因为这里用Docker,所有只需准备两台Mysql容器;Docker安装Mysql:1.拉取镜像docker pull mysql:5.72.启动两个容器(一主一从)#-p 12345:3306 容器内3306端口映射至外部12345端口#--name mysql_master 容器命名#-v /docker/mysql_master/conf:/etc/mysql/conf.d -v /docker/mysql_master/logs:/logs -v原创 2022-04-17 00:18:19 · 296 阅读 · 0 评论 -
mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
mysql报错如下:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.month_id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by问题出现的原因:MySQL 5转载 2021-05-13 16:03:44 · 243 阅读 · 0 评论 -
mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre问题
具体报错如下:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.month_id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by问题出现的原因:MySQL 5.7.原创 2021-05-09 23:02:24 · 562 阅读 · 0 评论 -
sql like问题,搜索内容不带空格,数据库数据带空格
有如下数据表:idname1张三 李四2aa bb cc需求:当搜索aabb时查询出数据库name字段去空格后包含aabb的行实现:SELECT * from tabel_name where REPLACE(name,' ','') LIKE '%aabb%'原创 2021-03-18 13:10:43 · 1356 阅读 · 0 评论 -
MySQL使用left join 无法统计数量为0的问题解决
现有两张数据表:表1:agent_table(代理表)ag_idag_name1张三2李四3欢仔表2:user_table(用户表)u_idu_nameu_ag_id1用户122用户223用户334用户43需求为查询每个代理下的用户数量;当我们使用连表查询'select ag.ag_name,count(u_id) as total fromagent_table ag left join原创 2020-11-18 15:25:50 · 1983 阅读 · 0 评论 -
MySQL数据库按时间分表的查询方法
分表规则:按月分表,每个月一张表,表的字段和类型都相同。 如 test_table_202011查询方法:$start_date = strtotime('2020-01-01 00:00:00'); //开始时间戳$end_date = strtotime('2020-07-01 23:59:59'); //截至时间戳$month_begin = date('Ym', $start_date); //开始年月$month_end = date('Ym', $end_date);原创 2020-11-16 15:15:04 · 4930 阅读 · 0 评论 -
PHP面试题汇总及相应解析
1. redis和memcached的区别和使用场景https://blog.csdn.net/u010398838/article/details/79995636区别1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等;2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储;3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘;4、过原创 2020-08-19 16:09:35 · 226 阅读 · 0 评论 -
原生PHP操作Excel将数据导入数据库
1.首先准备第三方类库PHPExecl;个人打包整理类库:http://www.glyxi.com/Download/PHPExcel.zip2.excel文件3.php代码(原生)<?php// 假定数据库用户名:root,密码:root,数据库:test_execl$con=mysqli_connect("localhost","root","root","test_ex...原创 2019-05-07 19:01:44 · 545 阅读 · 0 评论 -
MySQL update A set num=num+ ? where id=?是否存在并发的问题
在我们的实际开发中,往往会遇到更新数据字段的问题。如投票时,如果多人同时投票,是否存在在取数据并更新的时候,原始值是相同的,而后续的update操作会造成错误的数据?比如,表名A,字段名为 number,如下的SQL语句: 语句1:update A set number=number+ 5 where id=1;语句2:update A set number=number+ 7 where...转载 2019-04-14 18:35:21 · 5219 阅读 · 0 评论 -
mysqli_fetch_array()、mysqli_fetch_assoc、mysqli_fetch_row()和mysqli_fetch_object()的用法及区别
mysqli_fetch_array() 来使用或输出所有查询的数据。mysqli_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有 返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。使用mysqli_fetch_assoc()和mysqli_fetch_row()都是把查询结果返回到一个数组中,都是返回第一行然后指针下移一行。区别:...原创 2019-03-29 12:51:36 · 1089 阅读 · 0 评论