`
originwxit
  • 浏览: 54334 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mysql按数字大小排序String字段

阅读更多
今天做项目的时候,遇到个小小的问题,在数据库中查询的时候,要用String类型的数字进行一下排序!结果是按照字符串排序来处理的,没有达到预想中的效果!于是先是想到将字符转成数字型的,在网上搜了一下,基本上都是这样做的,只不过很多人实现的方式稍有不同而已!有的是在 ORDER BY 的时候在字段前加个减号,或者是将排序的字段加上数字 ‘1’,其做法的基本思路都是将字段转成 int 型再来比较!(注:ID字段为 varchar 类型)
如:
SELECT * FROM  Student WHERE 1 = 1 ORDER BY -ID DESC

或者:
SELECT * FROM  Student WHERE 1 = 1 ORDER BY (ID + 1) 

这样都是按照 ID 的升序排列;
同时也考虑到 ID 在数据库中存在有字符串的列,那样也不会报错,那样会将字符串处理成 '0';
这个方法很不错,值得学习了!
分享到:
评论

相关推荐

    解决Hibernate中MySQL的中文排序

    在使用Hibernate进行数据库操作时,可能会遇到MySQL数据库中文排序不正确的问题。这通常是由于字符集设置、数据库排序规则以及Hibernate的配置等因素导致的。本文将深入探讨如何解决这些问题,确保MySQL数据库中的...

    MySql 5.1 参考手册.chm

    3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找...

    MYSQL

    8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 8.3.1 列的最大值 8.3.2 拥有某个列的最大值的行 8.3.3 列的最大值:按组:只有值 8.3.4 拥有某个字段的组间...

    MySQL中文参考手册.chm

    8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 8.3.1 列的最大值 8.3.2 拥有某个列的最大值的行 8.3.3 列的最大值:按组:只有值 8.3.4 拥有某个字段的...

    MySql从入门到精通

    - 多字段排序:`SELECT * FROM 表名 ORDER BY 字段名1, 字段名2;` ##### 4. 组函数 - 查询最大值:`SELECT MAX(字段名) AS '最大值' FROM 表名;` - 查询最小值:`SELECT MIN(字段名) AS '最小值' FROM 表名;` - ...

    SQL-ORDER BY 多字段排序(升序、降序)

    例如,有一个`orders`表,包含`order_id`, `customer_id`, `order_date`字段,我们要先按客户ID`customer_id`排序,然后按订单日期`order_date`降序排列最近的订单: ```sql SELECT * FROM orders ORDER BY ...

    MySQL 5.1中文手冊

    3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找...

    mysql 中如何取得汉字字段的各汉字首字母

    在MySQL数据库中,有时我们需要对包含汉字的字段提取每个汉字的首字母,例如用于拼音排序或创建基于拼音的索引。这个问题可以通过编写一个自定义函数来解决,正如给定的代码片段所示。下面我们将详细讨论这个过程。 ...

    MySQL 5.1参考手册

    MySQL 5.1参考手册.chm 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL...

    MySQL中文参考手册

    * 1 MySQL的一般的信息 o 1.1 什么是MySQL? o 1.2 关于本手册 + 1.2.1 本手册中使用的约定 o 1.3 MySQL的历史 o 1.4 MySQL的主要特征 o 1.5 MySQL稳定性? o 1.6 顺应2000年 o 1.7 SQL一般信息和教程 o ...

    MySQL 5.1官方简体中文参考手册

    3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找...

    MySQL 5.1参考手册 (中文版)

    3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找...

    MySQL 5.1参考手册中文版

    3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1...

    mysql5.1中文手册

    列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的...

    mysql分页存储过程

    - **`order_field`**:用于排序的字段名。 - **`asc_field`**:排序方式,1表示降序(DESC),0表示升序(ASC)。 - **`sCondition`**:查询条件,可以为空。 - **`sGroupBy`**:分组字段,可以为空。 - **`rows...

    MySQL关于字符串中数字排序的问题分析

    这种方法的核心在于,通过将字段与1相乘或相加,MySQL会尝试将字符串转换为数字,然后按照数值大小进行排序。这是因为乘以1或加0不会改变数字的值,但对于字符串,它触发了隐式类型转换,使得MySQL将字符串视为数字...

    MySQL text插入长文本时报错Incorrect string value xE5x8FxAC.docx

    在MySQL数据库中,当尝试向一个`text`类型的字段插入数据时,如果遇到"Incorrect string value: '\xE5\x8F\xAC'"这样的错误,这通常意味着你正在尝试存储的字符串包含不受支持或者编码不正确的字符。这个错误信息...

    mySQL笔记介绍

    ### MySQL基础知识及操作指南 #### 一、启动与连接MySQL服务 **启动MySQL服务:** 在Windows系统下,可以通过命令`net start mysql`来启动MySQL服务。 **连接MySQL服务器:** 连接MySQL服务器的基本命令格式为...

    MySQL中文编码设置

    String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8"; Connection conn = DriverManager.getConnection(url, "username", "password"); ``` 3. **创建数据库及表时指定...

    MYSQL中文手册

    5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集问题 5.10.8. MySQL服务器时区支持 ...

Global site tag (gtag.js) - Google Analytics