mysql进阶(八)怎么对varchar类型排序问题
MySQL中怎么对varchar类型排序问题
asc 升级
desc降序
在MySQL默认order by 只对数字与日期类型可以排序,但对于varchar字符型类型排序好像没有用了,下面我来给各位同学介绍varchar类型排序问题如何解决。
今天在对国家电话号码表进行排序的时候发现了一个有趣的问题,我想让isdcode字段按照由小到大的顺序排序,于是乎我是这样写的
SELECT * FROM gb_country_isdcode ORDER BY isdcode asc
结果如下,发现竟然不是我想要的结果,asc排序是对的呀,于是乎我找呀找,找呀找,终于找到原因了;
isdcode是varcher类型的,如果排序的直接用asc显然是不行的,必须将他转换成int类型然后就可以正常排序了,只要isdcode + 0就可以了
于是乎这样写
SELECT * FROM gb_country_isdcode ORDER BY (isdcode+0) asc
好像是想要的那种数据比较大小的了呀。。可是为什么+0就好了呢?原来,+0后就转换INT类型排序了。这样就可以按照大小排序了。
如果不是电话而是汉字怎么办,汉字排序我们只要进行简单转换即可排序了。
在mysql中使用order by对存储了中文信息的字段,默认出来的结果并不是按汉字拼音的顺序来排序,要想按汉字的拼音来排序,需要把数据库的字符集设置为UTF8,然后在order by 时候强制把该字段信息转换成GBK,这样出来的结果就是按拼音顺序排序的。例如:
SELECT * FROM table_name ORDER BY CONVERT(column_name USING gbk);
在mysql中试了一下,结果很令人满意。
结论是:查询的时候,通过convert函数,把查询出来的数据使用的字符集gb2312编码就可以了,然后使用convert之后的中文排序。但是如果真的去把表中字段的字符集改成gb2312,又会涉及到很多编码的问题,页面传值啊,从数据库中存取啊,很麻烦。只要在查询的时候,指定一下字符集,并不是真的把物理字段改成gb2312,很简单。
以上就是的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

作为一名PHP开发者,我们经常会遇到需要为网站或者应用添加点赞功能的需求。本文将介绍如何通过PHP编程进阶来设计和实现一个多篇文章点赞功能,以及提供具体的代码示例。一、功能需求分析在设计多篇文章点赞功能之前,首先需要明确我们的功能需求:用户可以查看网站上的多篇文章,并对每篇文章进行点赞操作。用户只能对每篇文章进行一次点赞,当用户已经点赞过时,不能重复点赞。用

高级技巧:掌握Go语言在爬虫开发中的进阶应用引言:随着互联网的迅速发展,网页上的信息量日益庞大。而获取网页中的有用信息,就需要使用爬虫。Go语言作为一门高效、简洁的编程语言,在爬虫开发中广受欢迎。本文将介绍Go语言在爬虫开发中的一些高级技巧,并提供具体的代码示例。一、并发请求在进行爬虫开发时,我们经常需要同时请求多个页面,以提高数据的获取效率。Go语言中提供

Oracle数据类型解析:从基础到进阶Oracle数据库是一款强大的关系型数据库管理系统,广泛应用于企业级应用程序开发和数据存储中。在Oracle数据库中,数据类型是非常重要的概念,它定义了数据存储的格式和范围。本文将从基础到进阶,系统地介绍Oracle数据库中常用的数据类型,包括数值型、字符型、日期型等,并提供具体的代码示例帮助读者更好地理解。一、数值型数

在当今信息技术发展迅速的时代背景下,编程语言的选择变得越来越重要。Golang作为一种由Google开发的现代化编程语言,在其诞生的短短几年里便迅速崛起并受到了广泛关注。Golang以其简洁高效的特性,被广泛应用于云计算、网络编程、大数据处理等领域。不过,对于初学者来说,学习一门新的编程语言往往需要克服一些困难。本文将从基础知识入手,详细介绍Golang的学

Go语言正则表达式进阶教程:如何使用后向引用正则表达式是一种强大的文本匹配工具,它可以帮助我们在字符串中快速查找和提取我们想要的信息。而Go语言也提供了内置的regexp包,来支持正则表达式的使用。在前面的教程中,我们已经学习了一些基本的正则表达式用法,比如匹配字符串、字符集合、数量限定符等。现在,我们将进一步了解如何使用后向引用,它可以帮助我们更精准地匹配

Golang的Template包进阶指南:从入门到精通介绍Golang的Template包是Go语言内置的模板引擎,提供了一种方便和灵活的方式来生成和渲染文本输出。在这篇文章中,我们会从基础知识开始,逐步深入,讲解如何使用Template包,以及如何通过一些高级技术来优化和扩展你的模板。基础知识:模板语法在使用Template包之前,我们需要了解其基础语法。

PHP闭包、生成器和反射技术的进阶应用方法解析概述:在PHP编程中,闭包、生成器和反射是强大的特性和技术。它们提供了许多高级和灵活的功能,帮助我们更好地组织和管理代码。本文将解析这三个技术的进阶应用方法,并提供具体代码示例。一、闭包(Closures)的进阶应用方法:1.1利用闭包实现“惰性求值”:闭包可以用于实现“惰性求值”的思想,即推迟计算,只有在需要

PHP是一种广泛使用的服务器端脚本语言,用于开发动态网站、Web应用程序和其他互联网服务。在开发PHP应用程序过程中,使用函数可以帮助简化代码、提高代码重用性和降低开发成本等。本文将介绍PHP函数的基础用法和进阶用法。一、PHP函数的基础用法1.定义函数在PHP中,使用function关键字来定义函数,例如:functiongreet($name){
