标签: mysql sorting
我有一个Mysql表, 我想按照meta_value的大小从最大到最小对表中的值进行排序。
meta_value
看看价值的顺序? 150,000,000如何小于1,555,555。
150,000,000
1,555,555
答案 0 :(得分:1)
Meta_value是CHAR列,而不是数字列。如果您的元值来自其他数据源,那么您将需要使用自然排序,并且可以使用ORDER BY LENGTH(alphanumeric), alphanumeric
ORDER BY LENGTH(alphanumeric), alphanumeric
如果您可以控制meta_value中的内容,则可以考虑将列数据类型修改为int或numeric或其他一些数字数据类型。然后你会得到你期望的那种。但是,使用现有数据更改数据类型存在遇到非标准数据的风险,因此您需要确切知道该列中的值。