varchar类型的字段存储纯数字的排序
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,如果表字段的类型为varchar型,但是里面存储的是纯数字,怎么实现按照数字的大小来排序?下面的方法对于mysql和oracle都实用order by 字段+0order by 字段*1等等都可以实现
千家信息网最后更新 2025年02月04日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安全错误
数据库的锁怎样保障安全
海南海云天网络技术 电话
服务器 修改法师诱惑宝宝的等级
湖湘杯网络安全应急
数据库怎么上传使用
徐汇区专业软件开发销售方法
新北区春江乔洛软件开发工作室
小学生网络安全诗词
软件开发质量管理哪个分类
服务器组建和管理
广州臻淼网络技术有限公司
平顶山软件开发工作室
数据库技术对社会发展的贡献
国外电影 网络安全
排名表数据库
数据库大T
开展一次网络安全等级测评
首届陇剑杯网络安全大赛直播
松江区品质软件开发销售
软件开发培训学校汽车之家
嘉定区常规软件开发参考价格
网络安全设计报告4000
我的世界服务器怎样快速获得钻石
杭州他山网络技术有限公司
dtcc数据库
软件开发在哪里可以学
小学生网络安全诗词
软件开发 参数
es浏览器怎么新建服务器
深圳专业软件开发定做
linux补丁服务器