gpt4 book ai didi

EAV 表中的 MySQL 排序错误

转载 作者:行者123 更新时间:2023-11-29 00:45:42 25 4
gpt4 key购买 nike

我有一个实体属性模型,用于存储与用户相关的信息。然后,我还尝试对仅包含降序数字的特定实体进行排序。我正在运行如下查询:

SELECT * FROM `user_meta` WHERE `key` = 'children'   ORDER BY `user_meta`.`value`  DESC

直到最近当用户有 11 个 children 时,我才遇到此查询的问题,现在结果如下所示

+-----+----------+-------+
| uid | key | value |
+-----+----------+-------+
| 1 | children | 5 |
| 1 | children | 3 |
| 1 | children | 3 |
| 1 | children | 2 |
| 1 | children | 11 |
| 1 | children | 1 |
+-----+----------+-------+

我已经尝试过对该查询进行各种不同的修改,但没有发现任何解决这个排名问题的方法,其中 5 > 11。它可能有用,但 keyvalue 如果影响 MySQL 使用的排序算法,属性是 varchar(250)

最佳答案

当您的列是 CHAR 类型时会发生这种情况。它比较字符串而不是数字。

下单时可以投:

ORDER BY CAST(`user_meta`.`value` AS UNSIGNED)

或者对于有符号整数:

ORDER BY CAST(`user_meta`.`value` AS SIGNED)

另请参阅:Cast Functions and Operators

关于EAV 表中的 MySQL 排序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10611108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com