首页 数据库 mysql教程 mysql进阶(八)怎么对varchar类型排序问题

mysql进阶(八)怎么对varchar类型排序问题

Feb 09, 2017 pm 03:28 PM

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)!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP编程进阶:多篇文章点赞功能设计与实现 PHP编程进阶:多篇文章点赞功能设计与实现 Feb 28, 2024 am 08:03 AM

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

Go语言爬虫开发的高级技巧:深入应用 Go语言爬虫开发的高级技巧:深入应用 Jan 30, 2024 am 09:36 AM

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

Oracle数据类型解析:从基础到进阶 Oracle数据类型解析:从基础到进阶 Mar 07, 2024 pm 03:09 PM

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

学习Golang:从入门到精通 学习Golang:从入门到精通 Feb 24, 2024 pm 07:48 PM

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

Go语言正则表达式进阶教程:如何使用后向引用 Go语言正则表达式进阶教程:如何使用后向引用 Jul 13, 2023 pm 01:43 PM

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

Golang的Template包进阶指南:从入门到精通 Golang的Template包进阶指南:从入门到精通 Jul 17, 2023 pm 12:06 PM

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

PHP闭包、生成器和反射技术的进阶应用方法解析 PHP闭包、生成器和反射技术的进阶应用方法解析 Sep 13, 2023 am 09:03 AM

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

PHP函数用法:从基础到进阶 PHP函数用法:从基础到进阶 Jun 15, 2023 pm 11:11 PM

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

See all articles