由于各种限制,MySQL 数据库中数字有时会以 VARCHAR 数据类型存储。但是,当根据这些值排序数据时,字符优先于数值,导致数值排序不正确。
为了解决这个问题,您可以使用以下语法将字符串值显式转换为整数:
<code class="language-sql">SELECT col FROM yourtable ORDER BY CAST(col AS UNSIGNED)</code>
此转换强制数据库将值视为整数,确保正确的数值排序。
或者,您可以使用隐式将字符串转换为整数的数学运算,例如:
<code class="language-sql">SELECT col FROM yourtable ORDER BY col + 0</code>
在这种情况下,加 0 会强制 MySQL 执行数字转换。
请注意,MySQL 从左到右转换字符串。包含非数字字符或以非数字字符开头的字符串将转换为 0,导致排序不正确。因此,必须确保字符串值仅包含数字字符。
以上是如何正确排序 MySQL 中以字符串形式存储的数字?的详细内容。更多信息请关注PHP中文网其他相关文章!