我正在使用基于字段内字符串的过滤器编写查询。但是,我正在运行查询,它显示错误:
LIKE表达式的左侧必须计算为varchar
我想过滤所有基于custom_field
购买宝马的人。
这是自定义字段中的示例数据:
{ "car_model;":"BMWZ4", "car_id":"0980291", "manufacture":"bmw" }
代码:
SELECT
first_name,
Last_name,
country,
custom_field
FROM
sales_table
WHERE
custom_field LIKE '%BMWZ4%'
预期结果
first_name: John
last_name: Parker
country: Germany
custom_field: {"car_model;":"BMWZ4","car_id":"098222291","brand":"bmw"}
答案 0 :(得分:1)
这个评论太长了。
您的列custom_field
不是随机字符串。特别是一个JSON字符串。实际上,使用称为JSONB的二进制格式可能根本不会将其存储为字符串。
支持JSON(如今几乎是所有主要数据库)的数据库都具有定制的JSON函数。您应该使用这些函数来提取模式和值。但是,在不了解数据库的情况下,没有人可以给您具体的答案。
通常,将JSON列视为其正确类型会比将其视为字符串产生更有效的查询。有些数据库甚至允许在JSON列上建立索引。
答案 1 :(得分:0)
document.onload(() => document.getElementById('play').click());