【问题标题】:How to write a MySQL query with WHERE in json如何在 json 中使用 WHERE 编写 MySQL 查询
【发布时间】:2016-09-26 13:02:30
【问题描述】:

所以我在 MySQL DB 中保存了一个值,格式如下: [["88"],["90"],["91"]]

我怎样才能将查询写成类似

SELECT * FROM table WHERE jsonColumn IN '88' 它会找到 JSON 数据中有 88 的所有条目?

【问题讨论】:

  • 嘿 @Xeen 我 afriad [["88"],["90"],["91"]] 不是有效的 JSON
  • 你应该改变你的桌子设计。切勿在单个列中存储多个值。

标签: php mysql sql json


【解决方案1】:

使用WHERE 查找["88"] 会更好:

SELECT * FROM `table` WHERE `jsonColumn` LIKE '%["88"]%'

这将确保在搜索88 时不会错误返回["188"] 等值。另外,你确定你需要桌子上的一切吗?一般不需要SELECT *

话虽如此,优化规范化可能会更好,这样您就不会存储 JSON 或序列化数据。这将使您的查询更加高效,并且通常更易于使用,尤其是对于更复杂的查询。

【讨论】:

  • 我也想知道为什么要投反对票。这是一个很好的答案,并且有相关的解释。
  • @juergend 我真的很想知道为什么有人认为它值得反对。这不是攻击或任性的行为,我想知道我是否错过了什么。要求某人解释他们的反对意见有什么问题,这样不仅我,而且 OP 都可以了解是什么让这个答案好/坏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 2015-12-27
  • 1970-01-01
  • 2015-11-18
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多