gpt4 book ai didi

mysql - 当所述列的值为 NULL 时,确认我在可空列上使用 JSON_extract 函数的 where 语句?

转载 作者:行者123 更新时间:2023-11-29 01:26:44 25 4
gpt4 key购买 nike

我有一个带有 JSON_extract 方法的 where 语句。 JSON_extract 使用名为 new_valueold_value 的可空列。如果该列包含 JSON 字符串,则检查有效,但当该列为 NULL 时,where 语句得到确认。

->where(function($query) use ($other_key, $new_change) {
$query->where(DB::raw('json_extract(old_value, "$.theme_id") = 1))
->orWhere(DB::raw('json_extract(new_value, "$.theme_id") = 1));

new_valueold_value 为 NULL 时,该行被返回,但 NULL 的 theme_id 显然不等于 1。有人可以解释这里发生了什么?

最佳答案

这个:

->where(function($query) use ($other_key, $new_change) {
$query->where(DB::raw('json_extract(old_value, "$.theme_id") = 1))
->orWhere(DB::raw('json_extract(new_value, "$.theme_id") = 1));

应该是:

->where(function($query) use ($other_key, $new_change) {
$query->where(DB::raw("json_extract(old_value, '$.theme_id')"), 1);
->orWhere(DB::raw("json_extract(new_value, '$.theme_id')"), 1);

这就是 Laravel 中 where 语句的工作方式。我没有插入第二个参数,这就是 Laravel 假设我正在检查 NULL 的原因。现在可以用了,为我的愚蠢感到抱歉。

关于mysql - 当所述列的值为 NULL 时,确认我在可空列上使用 JSON_extract 函数的 where 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42023802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com