将部分非数字文本转换为数字以进行 MySQL 查询排序
在 MySQL 中,根据嵌入的数值对 varchar 列进行排序可能具有挑战性。此问题解决了一个实际场景,其中列包含格式为“名称-数字”的标识符,并且需要根据数字部分进行排序。
问题:
该列包含格式为“名称-编号”的文本,其中数字组件嵌入在文本中。使用默认字符顺序对列进行排序会因字符比较而导致序列不准确。
解决方案:
要解决此问题,需要将非- 在排序之前将数字文本转换为数字。以下查询可以完成此操作:
SELECT field,CONVERT(SUBSTRING_INDEX(field,'-',-1),UNSIGNED INTEGER) AS num FROM table ORDER BY num;
解释:
其他注意事项:
以上是如何对包含'name-number”字符串的 MySQL 列进行数字排序?的详细内容。更多信息请关注PHP中文网其他相关文章!