【发布时间】:2020-05-03 20:39:54
【问题描述】:
我想将 Json 中的价格从小到大排序,但我认为我做错了什么,我究竟会在哪里出错?
public function kitaplik($id)
{
$this->db->where('kitaplik_isbn', $id);
$this->db->order_by("CAST(json_object('kitaplik_ifiyat', kitaplik_json) AS DECIMAL(9,2))");
$query = $this->db->get('kitaplik');
return $query->result();
}
kitaplik->kitaplik_json
{"kitap_fiyat":25.46,"kitap_ifiyat":12}
我在“kitaplik”表中有很多产品,这些产品的价格都是 json 格式。我想使用 CAST Decimal 从小到大对这些产品进行排序。但我必须通过在 json 中的“kitaplik_ifiyat”部分中获取价格来进行排序。我该怎么做?
【问题讨论】:
-
但是错误是什么?什么是预期的输出,你的 json 列是什么样的?除了您期望返回多少条记录之外?您正在查询 $id,这是一个唯一索引吗?如果是这样......好吧
-
@Vickel 不会对数据进行从小到大的排序。它输出正常数据。
-
是的!但是
whereclause 是什么,是否将返回的记录集限制为一个?这就是我问的原因,json 列是什么样的,预期的输出是什么 -
@Vickel 我的英语不是很好,所以我不太懂你。数据输出如下。它没有正确排序。 24.48 TL --------- 24.19 TL --------- 12.00 TL
-
您的英语没问题,请用相关详细信息编辑您的问题。如果您现在查看您的问题和最后一条评论,您自己能找到答案吗?为什么您评论中的排序顺序不正确?您需要将此添加到您的问题中,请
标签: php mysql codeigniter