在SQL中将longtext排序为int

Mil*_*los 3 mysql sql wordpress sql-order-by

我在MySQL数据库中有一个表,其中一个列类型是longtext并且存储了数字.我需要从表中按照该列中的数字排序的内容.

SELECT * FROM wp_postmeta WHERE meta_key = 'rating_avg' ORDER BY meta_value
Run Code Online (Sandbox Code Playgroud)

使用此查询排序不正确,如下所示:

0
1.6
10
5
Run Code Online (Sandbox Code Playgroud)

但我需要这样的:

10
5
1.6
0
Run Code Online (Sandbox Code Playgroud)

我可能不会更改列类型,因为此列有许多不同类型的数据.是否有可能在SQL查询中临时更改列类型?

Dev*_*oot 9

你在寻找什么CAST.

CAST(expr AS type)
Run Code Online (Sandbox Code Playgroud)

您的SQL查询应如下所示:

SELECT * FROM wp_postmeta WHERE meta_key = 'rating_avg' ORDER BY CAST(`meta_value` AS DECIMAL) DESC
Run Code Online (Sandbox Code Playgroud)