ユーザーに関連する情報を格納するためのエンティティ属性モデルがあります。また、数値のみを含む特定のエンティティを降順で並べ替えようとしています。次のようなクエリを実行しています。
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 のこのランキングの問題を修正するものは見つかりませんでした。これは役立つかもしれませんが、MySQL が使用するソート アルゴリズムに影響を与える場合は、属性key
とvalue
属性の両方が使用されます。varchar(250)