postgresql - 从laravel中的json字段`field_value`转换值的正确方法是什么?
问题描述
我这里有一个 laravel 代码。
return Model::where(function($query) use ($types, $codes) {
return $query->where(function($query) use ($types, $codes) {
foreach ($types as $key => $type) {
$field = '"field_value"->' . "'$type'";
$field = 'lower(' . $field . ')';
if ($key != 0) {
$query->orWhereJsonContains(DB::raw($field), $codes[$key]);
} else {
$query->whereJsonContains(DB::raw($field), $codes[$key]);
}
}
return $query;
})->orWhere('field_value', null);
})->whereHas('relation', function ($query) {
return $query->where('deleted_at', null);
})->where('table_group_id', $tableGroupId)
->orderBy('id', 'ASC')
->get();
但是这段代码给了我一个错误。
我在这里要做的是通过将其转换为小写来比较不敏感的值。类似于此处描述的内容。https://alvinalexander.com/sql/sql-select-case-insensitive-query-queries-upper-lower/和https://stackoverflow.com/a/56189431/3721034
这个错误
SQLSTATE [42883]:未定义函数:7 错误:函数 lower(json) 不存在
field_value
从laravel中的json字段转换值的正确方法是什么?
解决方案
推荐阅读
- javascript - node.js/discord.js:TypeError:无法读取 null 的属性“setPresence”
- ckeditor - 如何在 Aurelia 应用程序中集成 CKEDITOR5
- apache-poi - 如何修复“无效的行号(-4)超出允许范围(0..1048575)”?
- python - Snakemake 删除 --config 值中的下划线?
- php - 使用 mailtrap 在 laravel 中发送电子邮件
- google-cloud-platform - public instance CNAME for GCP compute instance
- node.js - 使用 Promise 在 MongoDB 中插入记录的 Node.js 程序示例
- javascript - How to have aspect ratio by parent height?
- django - 如何模拟原生 CREATE 响应
- windows - How to access a different console, such as writing to its input buffer