当前位置: 首页 > 面试题库 >

SQL订单字符串作为数字

靳茂
2023-03-14
问题内容

我将数字保存VARCHAR到MySQL数据库。INT由于某些其他情况,我无法制作它们。

排序时将其作为字符而不是数字。

在数据库中我有

1 2 3 4 5 6 7 8 9 10...

在我的页面上,它显示如下排序列表:

1 10 2 3 4 5 6 7 8 9

如何使它按数字升序显示?


问题答案:

如果可能,则无论如何仅存储数字,应将列的数据类型更改为数字。

如果您无法执行此操作,则将列值integer 强制转换

select col from yourtable
order by cast(col as unsigned)

隐式地 使用例如数学运算来强制转换为数字

select col from yourtable
order by col + 0

BTW MySQL将字符串从左到右转换。例子:

string value  |  integer value after conversion
--------------+--------------------------------
'1'           |  1
'ABC'         |  0   /* the string does not contain a number, so the result is 0 */
'123miles'    |  123 
'$123'        |  0   /* the left side of the string does not start with a number */


 类似资料:
  • 在 T-SQL 中字符串函数应用于字符串值并返回数字数据或字符串值。 下面借助示例给出字符串函数的类型: ASCII()函数 ASCII 码值作为字符表达式的输出。 下面ASCII ()查询将给出字符的 ASCII 值。 输出结果如下 - CHAR()函数 CHAR()函数将字符将像 ASCII 代码或整数的输出一样出现。下面的查询生成整数的字符 - NCHAR()函数 使用 NCHAR(),任何

  • 以下是SQL Server字符串函数,用于处理输入字符串并返回字符串或数值: 函数 描述说明 ASCII 返回字符的ASCII代码值。 CHAR 将ASCII值转换为字符。 CHARINDEX 从指定位置开始搜索字符串内的子字符串,并返回子字符串的位置。 CONCAT 将两个或多个字符串连接成一个字符串。 CONCAT_WS 使用分隔符将多个字符串连接成一个字符串。 DIFFERENCE 比较两个

  • 1. 前言 慕课解释:SQL 内置的字符串函数主要用于对字符类型的字段进行相关的操作。 本小节,我们将一起学习 SQL 中的字符串函数。 字符类型是一个十分重要的类型,因此 SQL 提供了诸多便利的内置函数来供开发者使用。 本小节测试数据如下,请先在数据库中执行: DROP TABLE IF EXISTS imooc_user; CREATE TABLE imooc_user ( id int

  • 问题内容: 我有一个字符串: 我想要一个简单的方法将其转换为实际的。 我能从中挖掘出的所有其他问题都与将int字符串转换为数组有关。 我试着做 但是我明白了 手动清理边缘并去除斜线似乎是我做错了什么。 我很好奇是否有一种简单的方法可以将字符串数组作为字符串转换为字符串数组。 即转换为 解决方案 (感谢@Eric D) 问题答案: 将您的“字符串数组”编码为数据,然后将此数据作为JSON解码为Swi

  • 问题内容: 我是Java的新手,我不太确定如何将整数加幂作为字符串输出。我知道 实际上会计算出将双精度数提高到幂的值。但是,如果我想输出“ 2 ^ 6”作为输出(除了6作为上标而不是克拉),我该怎么做? 编辑:这是一个Android应用程序。我以整数形式传递给幂的整数,我想知道如何在手机的UI中将其转换为上标。 问题答案: 如果要将文本输出到GUI,则可以使用HTML格式和标记获取上标。否则,您将

  • 问题内容: 我有一列包含这样的数据。破折号表示同一张发票的多份副本,这些副本必须按升序排序 我必须按此数字以升序对其进行排序,但是由于这是一个varchar字段,因此它按字母顺序进行排序,如下所示 为了解决这个问题,我尝试将-(破折号)替换为空,然后将其强制转换为数字,然后对该数字进行排序 虽然这更好,并像这样排序 有人建议我在-(破折号)上分割发票编号,并在2个分割部分上按顺序排列 喜欢====