我有一个包含列点[VARCHAR]的表格
当我取出分数大于80的记录并按分数降序排列时。我只得到从 99 开始的数字。实际上我的分数大于 100。
尝试了添加 +0 的选项,但按升序排列的结果很奇怪, 从 8 的点获取数据
最佳答案
由于此列是 varchar
排序比较,where 子句是按字母顺序而不是数字顺序完成的。这意味着“80”>“100”,因为“8”<“1”。您需要将此列转换为整数
。使用CAST(points AS INTEGER)
而不仅仅是点。
关于php - 使用 where 条件对 mysql varchar 列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9824399/