我是靠谱客的博主 聪慧戒指,最近开发中收集的这篇文章主要介绍mysql转integer排序_mysql中 字段类型转换后进行排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在开发中遇到了字段进行排序问题,字段类型是varchar类型 转换为INTEGER 进行排序:

举个例子:例如我们要进行排序的字段是 name_id 为varchar 要进行排序

select * from book where order by name_id desc, 此种排序肯定不是想要的下面两种方式为你想想的

select * from book  order by (name_id+0) desc

select * from book  order by (name_id as unsigned) desc

select  * from book  order by CONVERT(name_id,SIGNED) desc

mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过?

CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。

这个类型 可以是以下值其中的 一个:

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL

SIGNED [INTEGER]

TIME

UNSIGNED [INTEGER]

UNSIGNED 解释

整型的每一种都有无符号(unsigned)和有符号(signed)两种类型,在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个int能存储的数据的范围为–32768 ~ 32767(16位2进制的最高位作为符号位‘1’为负‘0’为正),而unsigned能存储的数据范围则是0~65535(这个最高位不用做符号位,所以是2的16次方,一共65536)。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数。同时在相同位数的情况下,所能表达的整数范围变大。另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。

在sql语句中的意义

sql语句中,创建一个数据表时

ceate table user{

user_id int unsigned

}

当中的unsigned表示,数据项user_id恒为正整数。

最后

以上就是聪慧戒指为你收集整理的mysql转integer排序_mysql中 字段类型转换后进行排序的全部内容,希望文章能够帮你解决mysql转integer排序_mysql中 字段类型转换后进行排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部