varchar类型的字段存储纯数字的排序
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,如果表字段的类型为varchar型,但是里面存储的是纯数字,怎么实现按照数字的大小来排序?下面的方法对于mysql和oracle都实用order by 字段+0order by 字段*1等等都可以实现
千家信息网最后更新 2026年11月01日varchar类型的字段存储纯数字的排序如果表字段的类型为varchar型,但是里面存储的是纯数字,怎么实现按照数字的大小来排序?
下面的方法对于mysql和oracle都实用
order by 字段+0
order by 字段*1
等等都可以实现
mysql> create table tn (id varchar(30),name varchar(50));
mysql> show create table tn;
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| tn | CREATE TABLE `tn` (
`id` varchar(30) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
mysql> insert into tn values (1,'a');
Query OK, 1 row affected (0.01 sec)
mysql> insert into tn values (10,'b');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (11,'bb');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (2,'bb');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (5,'c');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (3,'f');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (6,'g');
Query OK, 1 row affected (0.00 sec)
mysql> select * from tn;
+------+------+
| id | name |
+------+------+
| 1 | a |
| 10 | b |
| 11 | bb |
| 2 | bb |
| 5 | c |
| 3 | f |
| 6 | g |
+------+------+
使用order by语句进行排序
mysql> select * from tn order by id desc;
+------+------+
| id | name |
+------+------+
| 6 | g |
| 5 | c |
| 3 | f |
| 2 | bb |
| 11 | bb |
| 10 | b |
| 1 | a |
+------+------+
7 rows in set (0.00 sec)
貌似是不起作用,因为id列的值存的是字符串类型的
解决:
使用字段+0解决
mysql> select * from tn order by id+0 desc;
+------+------+
| id | name |
+------+------+
| 11 | bb |
| 10 | b |
| 6 | g |
| 5 | c |
| 3 | f |
| 2 | bb |
| 1 | a |
+------+------+
7 rows in set (0.00 sec)
或者使用 字段*1解决
mysql> select * from tn order by id*1 desc;
+------+------+
| id | name |
+------+------+
| 11 | bb |
| 10 | b |
| 6 | g |
| 5 | c |
| 3 | f |
| 2 | bb |
| 1 | a |
+------+------+
7 rows in set (0.00 sec)
下面的方法对于mysql和oracle都实用
order by 字段+0
order by 字段*1
等等都可以实现
mysql> create table tn (id varchar(30),name varchar(50));
mysql> show create table tn;
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| tn | CREATE TABLE `tn` (
`id` varchar(30) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
mysql> insert into tn values (1,'a');
Query OK, 1 row affected (0.01 sec)
mysql> insert into tn values (10,'b');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (11,'bb');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (2,'bb');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (5,'c');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (3,'f');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tn values (6,'g');
Query OK, 1 row affected (0.00 sec)
mysql> select * from tn;
+------+------+
| id | name |
+------+------+
| 1 | a |
| 10 | b |
| 11 | bb |
| 2 | bb |
| 5 | c |
| 3 | f |
| 6 | g |
+------+------+
使用order by语句进行排序
mysql> select * from tn order by id desc;
+------+------+
| id | name |
+------+------+
| 6 | g |
| 5 | c |
| 3 | f |
| 2 | bb |
| 11 | bb |
| 10 | b |
| 1 | a |
+------+------+
7 rows in set (0.00 sec)
貌似是不起作用,因为id列的值存的是字符串类型的
解决:
使用字段+0解决
mysql> select * from tn order by id+0 desc;
+------+------+
| id | name |
+------+------+
| 11 | bb |
| 10 | b |
| 6 | g |
| 5 | c |
| 3 | f |
| 2 | bb |
| 1 | a |
+------+------+
7 rows in set (0.00 sec)
或者使用 字段*1解决
mysql> select * from tn order by id*1 desc;
+------+------+
| id | name |
+------+------+
| 11 | bb |
| 10 | b |
| 6 | g |
| 5 | c |
| 3 | f |
| 2 | bb |
| 1 | a |
+------+------+
7 rows in set (0.00 sec)
字段
数字
类型
排序
存储
实用
作用
大小
字符
字符串
方法
语句
面的
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云之行互联网科技
新华互联网科技学校
互联网科技活动banner
圆梦互联网科技
互联网科技社
互联网科技集团
火传媒上海互联网科技
狮子座互联网科技培训
互联网科技公司介绍
互联网科技公司招聘
欧洲十大科技互联网公司
彤创互联网科技有限公司
呼和浩特新华互联网科技学院
浙南科技城互联网大厦建设工程
迪庆互联网科技招生
晋城互联网科技
科技互联网海报
黑云互联网科技有限公司
互联网科技包装股
济南小医互联网科技有限公司招聘
咖啡
国智互联网科技
互联网科技小额贷款
长亮科技 互联网金融
佩信高科技互联网
团飞科技与伯堂互联网服务平台
广州市恰铎互联网科技有限公司
互联网科技扶贫时间
西安小鹰速贷互联网科技有限公司
互联网行业科技股