MySQL:在'101'之前排序'1st'

Ben*_*enM 3 mysql sorting

在我的一个数据库字段中,我有包含序数后缀的数字.我正在尝试对它们进行升序排序,但由于数字包括序数后缀,因此字符串"101st"的值大于"1st",类似地,"29th"的值大于"2d".

有没有人知道如何解决这个问题,而不删除每个数字的序数后缀?

Nic*_*ssu 5

order by cast(field as unsigned)
Run Code Online (Sandbox Code Playgroud)

  • @nickf:谢谢.我不会怀疑那会起作用.我不确定它应该.:)在我看来,鼓励草率/糟糕的开发实践.我个人认为将`a`转换为UNSIGNED不应该返回0; 它应该引发一个例外,说"你是个白痴!''不是一个数字.",但那只是我.;) (2认同)