容易忘记备忘。group by x,y的意思是将所有具有相同x字段值和y字段值的记录放到一个分组里。举个栗子: 现在运营部门需要统计用户表每个性别和每个年龄的人数统计,例如男性17岁的20人,男性18岁的10人,女性40岁的1人先看会员表数据:SELECT * from memberid name sex age 1 张三 1 17 2 李四 2 17 3 王五 1 33 4 赵六 1 33分组统计:SELECT  *
假设有个会员表,auth字段代表拥有的权限,其中1代表查看、2代表修改 、3代表新增  4代表删除,现在需要查询拥有新增权限的用户。先看看会员表:select * from memberid name auth 1 gao 1,2,3 2 chen 3 3 zhu 4查询auth中存在3的即可:select * from member where FIND_IN_SET(3,auth);id name
【一】.介绍mysql交叉连接官方名是cross join。假设t1表2条记录,t2表3条记录,交叉连接后的结果就是t1表记录乘于t2表记录(2*3=6条记录)【二】.数据演示先展示t1表和t2表的记录:select * from  t1t1id t1name 1      6 2      7select * from &
【一】.概念查询缓存,就是将查询结果缓存起来,如果遇到相同的Sql查询,直接从缓存中读取结果。例如在一个商城中的商品分类是不会经常变动的,完全可以走缓存,没必要每次从磁盘中读取。【二】.查询缓存开启状态执行Sql:show VARIABLES  like  '%query_cache%'输出结果:have_query_cache YES query_cache_limit 1048576 query_cache_min_res
项目中对接一个单点登陆的回调api,需要判断用户是否在库,不在库新增用户,在库更新登陆次数,大概代码如下:<?php $isExist = true; if ($isExist) {     insert([         'id' => 392223903,   &
mysql的字段长度分为储存长度和显示长度(1).储存长度,仅仅对于不定长字段类型有作用,例如varchar,tinytext,text,char这种类型字段的长度是指的是储存长度例如varchar(3),储存hello会报错数据过长(2).显示长度,仅仅对于定长字段类型有作用,例如int,float,tinyint,smallint这种类型字段的长度指的是显示长度。例如int(3),我们储存1,但是int(3)已经要求显示3个长度,那么这个字段的值会把1变成001;很多人自己试验发现没有变成0
【一】.配置3台服务器centos,并安装mysql1.主服务器192.168.5.21(master)  2.从服务器192.168.5.22(slave1)  3.从服务器192.168.5.23(slave2)  最新的centos版本通过yum安装的mysql其实默认是mariadb,需要自己修改源,建议用宝塔一键环境,安装的过程还能干其他事情。【二】.主节点(master)配置,配置完成重启1.启用二进制日志添加:log-bi
结果1:SELECT vend_id,prod_id,prod_price  FROM  products WHERE prod_price<=5结果2:SELECT vend_id,prod_id,prod_price  FROM  products WHERE vend_id IN(1001,1002)合并两个结果集:SELECT&nbs
(1).查询至少有2条订单的客户:SELECT cust_id, COUNT( * ) AS orders  FROM orders  GROUP BY cust_id  HAVING orders >=2
现在有张表products是产品表,vend_id是供应商id,prod_price是供应价格,现在需要统计每个供应商供应了多少商品,供应商品的平均价格,sql如下:SELECT vend_id, AVG( prod_price ), COUNT( * ) AS num_prods  FROM products  GROUP BY vend_id输出结果如下:vend_id &nbs
Top