【问题标题】:In sql, how to select from a json field在sql中,如何从json字段中进行选择
【发布时间】:2017-01-29 23:11:14
【问题描述】:

所以我在数据库中有这个 text(varchar) 字段,它有带有 ids 的 json 例如{1,2} 如何在 where 子句中匹配这些 id 之一。

我也在使用 eloquent 我在他们的文档中找不到答案。

【问题讨论】:

  • 欢迎来到 StackOverflow!您能否在您的问题中添加一些代码/详细信息?如果你解释你提到的东西(文本框、json、sql)是如何相互关联的,那么找到答案会容易得多。给我们看一些代码!
  • 你没有。这不是您使用关系数据库的方式。
  • 为了匹配这个json字段中的一个id,我总是可以获取整行然后遍历每一行,然后过滤不匹配的行。我只是想知道是否有办法通过 sql 过滤它们。

标签: php sql json eloquent


【解决方案1】:

您的问题有一个“PHP”标签,所以我想 PHP 解决方案可能很重要?

您可以使用 UDF 为 MySQL 解析 JSON,例如:https://github.com/ChrisCinelli/mysql_json

但更好的方法是选择 JSON 对象并在 PHP 中使用 json_decode() (http://php.net/manual/en/function.json-decode.php) 对其进行解析,然后将数据转换为更适合您意图的数据库模式。

在 JSON 编码的数据上使用原生 SQL 语句很少是最优的。

我会创建一个具有适当索引的新表,然后创建一个 PHP 函数/方法来解码 json 数据并插入到一个新表中。

【讨论】:

    【解决方案2】:

    您可以使用某种“字符串包含”或正则表达式逻辑,但这很容易出错。然而,大多数数据库都支持在数据库中存储和查询 json,例如像JSON data type 中的MySQL。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-03-20
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多