【问题标题】:How to query with a where clause in mysql json table如何在 mysql json 表中使用 where 子句进行查询
【发布时间】:2015-11-18 05:35:47
【问题描述】:

我正在使用 mysql 5.7.x

我可以创建一个mysql json表

 CREATE TABLE t1 (jdoc JSON);

我可以插入行。

INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
INSERT INTO t1 VALUES('{"key1": "value11", "key2": "value22"}');

我也可以获取所有行:

SELECT * from t1;

如何使用 where 子句?

select * from t1 where "key1" = "value1"

【问题讨论】:

  • 我应该如何在 OR 条件下通过多个键 (key1, key2, etc...) 搜索 value1

标签: mysql json


【解决方案1】:

你可以试试:

SELECT *
FROM t1
WHERE json_extract(jdoc, '$.key1')='value1'

【讨论】:

  • SELECT * FROM t1 WHERE json_extract(jdoc, "key1") = "value1";错误 3143 (42000):无效的 JSON 路径表达式。错误在“key1”中的字符位置 1 附近。
  • 如果我使用 json_extract(JSON, "key1") 我得到这个错误:错误代码:1054。'where 子句'中的未知列'JSON'
  • 抱歉我的错误。感谢@Tampa 的更正。
  • @Tampa 它应该是 $.key1 而不仅仅是 key1 作为 JSON_EXTRACT() 函数的第二个参数。
  • 我应该如何在 OR 条件下通过多个键 (key1, key2, etc...) 搜索 value1? @斯特尔斯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2021-05-26
相关资源
最近更新 更多