我有一个表,其中包含名为MEASURATIONS的json列,如下所示:

{
"area" : "100",
"rooms" : "2",
.
.
.
}

我try 按区域排序,但没有返回正确的结果:

Home::where('status', 'active')->orderBy('measurements->area', 'asc')->get();

在那之后,我用了这个:

Home::query()
    ->where('status','active')
    ->orderByRaw('CAST(features->area AS unsigned)', 'asc')
    ->get();

但它返回错误:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'area AS unsigned) limit 14 offset 0' at line 1

如何才能准确地按json列排序?请编写代码.

推荐答案

try :

->或derByRaw('CAST(features->"$.area" AS unsigned)', 'asc')

->或derByRaw('CAST(JSON_EXTRACT(features, "$.area") AS unsigned)', 'asc')

Php相关问答推荐

WooCommerce管理订单列表自定义列不显示值

不包括WooCommerce中单独销售的产品

在WooCommerce管理中为订单项目添加自定义字段价格值

在WooCommercestore 页面上显示库存产品属性的值

在WooCommerce存档页面中显示可变产品的库存变化属性

在WooCommerce中以编程方式添加特定产品后,将价格设置为零

Shopware 6 插件:如何删除布尔配置并将其迁移到多选配置

如何用十进制和字母数字减go 和添加 id

Font Awesome 加载图标未显示在 WooCommerce 管理员列表中

PHP访问子数组列表出错结果和长度

使用 Spomky Labs JWT 框架中的 verifyWithKey 验证 id_token JWT 的签名需要 30 秒以上

添加产品标签以通过 WooCommerce 邮箱通知订购商品

带有分类术语数组的 WordPress Elementor 自定义查询 - 如何要求所有术语都在返回的帖子中

如何在PHP中对多个脚本调用进行排队?

在WooCommerce我的账户单个订单页面中添加订单商品部分和按钮

.htaccess环境变量条件不被判断

PHP / DOM : 解析 HTML 以提取基于类的数​​据

如何更改或管理Carbon时区,使其不会来回移动时钟

Docker: unixodbc.h 没有这样的文件或目录.已安装 unixodbc-dev 时出现pecl install sqlsrv错误

如何从 PHP 中的字符串位置排除图像扩展名