ruby - 在 jsonb 字段中加入搜索查询
问题描述
我有桌子GroupItems
和桌子Groups
。Groups 有一个jsonb
名为 的列类型lms_data
。我想在name
里面的字段上搜索lms_data
。我正在使用 gem administrate 来帮助您创建具有搜索功能的仪表板。在您的仪表板中,您可以使用搜索配置声明一个字段:
group: Field::BelongsTo.with_options(
searchable: true,
searchable_fields: ["lms_data->>'name'"]
),
然后在搜索 gem 将动态构建查询,这里它构建:
"SELECT \"group_items\".* FROM \"group_items\" LEFT OUTER JOIN \"groups\" ON \"groups\".\"account_id\" = 4 AND \"groups\".\"id\" = \"group_items\".\"group_id\" WHERE \"group_items\".\"account_id\" = 4 AND (LOWER(CAST(\"groups\".\"lms_data->>'name'\" AS CHAR(256))) LIKE '%adv%')"
但是,这会引发错误:
PG::UndefinedColumn: ERROR: column groups.lms_data->>'name' does not exist
LINE 1: ...E "group_items"."account_id" = $2 AND (LOWER(CAST("groups"."..
在连接组表中查询 lms_data->>'name' 的正确语法是什么?
解决方案
推荐阅读
- regex - 将 URL 从一个查询字符串重定向到另一个
- c++ - MPI 仅在 Visual Studio 调试部分编译
- bash - 终端在括号中有两个环境
- lightningchart - 'requestAnimationFrame' 处理程序占用
闪电图中的毫秒 - php - 将页面返回给客户端,并进行最终的 IO 阻塞操作
- rust - 我不知道为什么我不能使用格式!向量上的内部 for 循环
- python - 字符串等于的Python代码不适用于python
- flutter - ScrollController 的使用 Flutter 的新版本
- c# - c#无法从文本文件中读取特殊字符
- powerbi - 当行不相关时,为什么我的 DAX 度量会这样工作?