【问题标题】:How to use JSON object to mysql query?如何使用 JSON 对象进行 mysql 查询?
【发布时间】:2016-10-18 22:28:23
【问题描述】:

从最近的一次查询中,我得到了这个结果。

[{"BeneficiaryID":"2"},{"BeneficiaryID":"3"},{"BeneficiaryID":"4"},{"BeneficiaryID":"6"}]

我想将这些 ID 值用于使用 Laravel 进行的另一个 mysql 查询。
我怎样才能只获得这些数字。
最终结果应该类似于 [2,3,4,6]

【问题讨论】:

  • 所以数据存储为json编码的字符串??
  • 从mysql 5.7你可以使用JSON数据类型dev.mysql.com/doc/refman/5.7/en/json.html
  • 只是 ID 值用于另一个查询,因此必须删除 BeneficiaryID 部分。

标签: mysql json laravel


【解决方案1】:
 $data = json_decode('[{"BeneficiaryID":"2"},{"BeneficiaryID":"3"},{"BeneficiaryID":"4"},{"BeneficiaryID":"6"}]');

$id_array = [];

foreach($data as $data) {
    $id_array[] = $data->BeneficiaryID;
}

$query = Model::whereIn('column', $id_array)->get();

【讨论】:

  • json_decode() 期望参数 1 是字符串,给定数组
  • 您使用 toJson() 方法得到结果?
  • 因为在我的回答中,一个字符串作为参数传递给 json_decode 函数,而 laravel toJson 方法也返回字符串?但是如果你不需要 json 格式,你可以使用 lists() 方法,它会返回一个数组
  • 如果我们提供 '[{"BeneficiaryID":"2"},{"BeneficiaryID":"3"},{"BeneficiaryID":"4"},{"BeneficiaryID":"6 "}]',我们得到了正确的输出。但是我们把它作为一个变量,当它使用 $data = json_decode($variable);我们遇到了错误。
  • JSON 格式的变量。这是结果 [{"BeneficiaryID":"2"},{"BeneficiaryID":"3"},{"BeneficiaryID":"4"},{"Beneficiar‌​yID":"6"}]
猜你喜欢
  • 2020-01-11
  • 1970-01-01
  • 2019-02-07
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多