内容简介:命令:举例:对数据库user表的name字段按照汉字拼音排序,user表数据如下:
命令:
若库表为uft8字符集时,需转换为gbk编码再排序:【比较常见】 order by convert(columnname(排序的列名) using gbk) asc; order by convert(columnname(排序的列名) using gbk) desc; 若库表为gbk字符集时,直接排序: order by columnname(排序的列名) asc; order by columnname(排序的列名) desc; 复制代码
举例:
对数据库user表的name字段按照汉字拼音排序,user表数据如下:
查看user表的DDL:user表采用utf8字符集,中文不能按照拼音排序,需转换为gbk编码,再进行排序
对user表的name字段进行gbk编码再排序: 【升序的话,英文排在中文前面的;反之降序排在后面】
2. 查询表中重复记录/查询表中某字段值存在重复值
一般不存在表中有完全重复的记录,因为我们在设计数据库表时,都有主键(id),不可重复,所以常见情况都是表中某字段值存在重复。
<1> 查询某一字段存在重复值的命令:
select columnname(字段名), count(*) as count from tablename(数据库表名) group by columnname(字段名) having count > 1; 命令扩展: select columnname(字段名), count(columnname(字段名)) as count from tablename(数据库表名) group by columnname(字段名) having count > 1 order by count desc; 复制代码
举例:
<2> 查询多个字段同时存在重复值的命令:
select columnname1(字段名1), columnname2(字段名2), count(*) as count from tablename(数据库表名) group by columnname1(字段名1), columnname2(字段名2) having count > 1; 复制代码
举例:
<3> 查询某一字段存在重复值的具体行记录信息:
方式一:使用in + 子查询 【数据量大时,耗时长,效率低】
举例:先用子查询查出user表中name字段的重复值,然后在user全表中做in匹配。
方式二:使用临时表做关联查询 【建立临时表,耗时短,效率高,推荐】
举例:把user表中重复的name字段值存放临时表usertemp中,使用关联查询,查出重复name字段的具体行记录信息。
说明: using() 括号必须有,关联查询 join using()表明要关联的两个表user和usertemp,关联的字段名是一致的,都为name。
<4> 查询多个字段同时存在重复值的具体行记录信息:
举例:
3. 去除表中重复记录
表中重复记录:指的是表中完全重复的记录,即所有字段值均重复。
一般我们在设计数据库表时,都有主键id,不可重复,所以一般不存在表中记录完全重复的情况;若出现了此情况,建议先从表结构设计上查找问题,增加主键,优化表结构。
查询表中完全重复的记录命令: 【不常用】
select distinct * from tablename(数据库表名); 复制代码
后续持续更新中...
以上所述就是小编给大家介绍的《MySQL项目实战总结》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- flink入门实战总结
- Netty入门与实战教程总结分享
- javascript数组常用函数与实战总结
- 架构-稳定性建设逻辑问题实战总结
- vue-router项目实战总结篇
- Java SpringBoot集成RabbitMQ实战和总结
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。