MySQL操作(五)查询实例

和自甴很熟 提交于 2019-12-03 16:46:01

1、mysql查询区分大小写

方法1、select * from `user`  where binary `email`='zhang_hao@163.com';
方法2、修改表字段 或建表的时候加上 binary

 

2、mysql统计一个数据库中每张表的行数、表所占空间大小(数据长度+索引长度)

use information_schema;
select table_name,table_rows,data_length+index_length as data_size from tables where TABLE_SCHEMA = '数据库名' order by data_size desc,table_rows desc;

 

3、mysql多表联合查询加分页

SELECT `un`.crid,cr.crname,sum(total) successtotalfee,sum(count) taketimes from ((SELECT crid,sum(total) total,count(1) count from ebh_takes where state=1 AND del=0 group by crid) UNION ALL (SELECT crid,sum(moneyaftertax) total,count(1) count from ebh_jsapplys where paystatus=1 group by crid)) as un left JOIN `ebh_classrooms` cr ON cr.crid=un.crid  WHERE  `un`.crid in(14339,14338,14337,10606)  GROUP BY `un`.crid ORDER BY successtotalfee DESC  LIMIT 0, 50

 

4、返回子串substr在字符串str中出现的位置

FIND_IN_SET(str,list)  分析逗号分隔的list列表,如果发现str,返回str在list中的位置
POSITION(substr IN str) 返回子串substr在字符串str中第一次出现的位置 等价于LOCATE
LOCATE(substr,str)  返回子串substr在字符串str中第一次出现的位置 
//participants : 'zhansan@163.com,lisi@qq.com,mazi@126.com'//tidstr: '85,36,25'
SELECT * from cls_course where find_in_set('gu_yun@qq.com',participants); SELECT * from ebh_activitys where LOCATE('85',tidstr)>0;SELECT * from ebh_activitys where POSITION('85' IN tidstr)>0;

 

5、字符串查找替换

replace(field,search,new); 字符串查找替换

UPDATE webinars_course set course_url=replace(course_url,'training/','www/');  将course_url字段中的training/ 字符串替换为www/

 

6、mysql控制流函数

-- 1、根据数字返回判断性别
SELECT u.uid,u.username,CASE u.sex WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '其他' END sex FROM eb_users u LIMIT 100000;
-- 2、按性别和余额区间统计数量和平均值
SELECT count(0) count,if(sex=0,'男','女') sex,avg(balance),(case when balance<1000 then '1000以下' when balance BETWEEN 1000 and 5000 then '1000-5000' else '5000以上' end) as `level` from ebh_users where sex<2  GROUP BY `level`,sex;    

 

7、变量设置

-- 1、变量设置(适用多条语句操作,有相同值得时候)
SET @userId='123466665';
-- 将sql语句查询的结果赋值到变量
SET @userId=(SELECT USER_ID FROM `user` WHERE EMAIL='gu_liang@dahuatech.com');
DELETE FROM `user` WHERE  USER_ID=@userId;
DELETE FROM `customer` WHERE  CUSTOMER_ID=@userId;
DELETE FROM `t_customer` WHERE  CUSTOMER_ID=@userId;

 

未完、持续更新中

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!