mysql如何对String类型的数字值排序
mysql对String类型的数字值排序
正常
SELECT current_box_num, total_box_num FROM jis_order WHERE delete_flag = 0 AND id IN ( 41362, 41361, 41360, 41359, 41358, 41357, 41356 ) ORDER BY total_box_num asc
查询结果

但如果total_box_num字段类型是String的话排序就会有问题, 需要在字段前加 --
SELECT current_box_num, total_box_num FROM jis_order WHERE delete_flag = 0 AND id IN ( 41362, 41361, 41360, 41359, 41358, 41357, 41356 ) ORDER BY --total_box_num asc
查询结果

或者
SELECT current_box_num, total_box_num FROM jis_order WHERE delete_flag = 0 AND id IN ( 41362, 41361, 41360, 41359, 41358, 41357, 41356 ) ORDER BY total_box_num+0 asc
mysql字符串数字排序
如果您的 MySQL 数据库中的字符串只包含数字并且您想按数字顺序对它们进行排序,可以使用 MySQL 内置的 CAST() 函数将字符串转换为数字,然后对数字进行排序。
例如:
假设您有一个名为 mytable 的表,其中包含一个名为 mycolumn 的列,该列包含字符串数字,您可以使用以下查询对它们进行排序:
SELECT mycolumn FROM mytable ORDER BY CAST(mycolumn AS UNSIGNED) ASC;
这将按升序顺序返回 mytable 中的所有行,并将 mycolumn 中的字符串数字转换为无符号整数进行排序。
如果您想按降序顺序对它们进行排序,可以将 ASC 替换为 DESC。
请注意,如果 mycolumn 中包含非数字字符,则 CAST() 函数将返回 0。
因此,如果您的列中包含其他字符,则可能需要使用其他方法来排序。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
mysql中drop、truncate与delete的区别详析
对于drop、truncate和delete虽然简单,但是真要使用或者面试时候问到还是需要有一定的总结,下面这篇文章主要给大家介绍了关于mysql中drop、truncate与delete区别的相关资料,需要的朋友可以参考下2022-03-03
MySQL(基于GTID方式)实现主从复制和单主复制详细教程
在分布式数据库系统中,主从复制是实现高可用性和数据冗余的重要手段,基于GTID的复制模式可以提供更强的复制一致性和简化故障转移过程,本文将详细介绍如何配置单主复制的GTID模式,以便在MySQL数据库中实现稳定可靠的数据复制,需要的朋友可以参考下2024-07-07


最新评论