如何检查 MySQL JSON 列是否包含 Laravel 中的值?

Sha*_*jan 7 php mysql json laravel laravel-5

我曾经在 JSON 数据类型列中查找搜索项是否存在。

我用,

 TABLE::whereRaw('json_contains(list, \'["value"]\')')->get();
Run Code Online (Sandbox Code Playgroud)

这将返回那些在“列表”JSON 列中具有“值”的内容。

但是,我如何使用反向方法来列出,那些在 laravel 的 json 列中没有这个值。

谢谢 !

Jon*_*eir 10

您可以使用not:

TABLE::whereRaw('not json_contains(list, \'["value"]\')')->get();
Run Code Online (Sandbox Code Playgroud)

在 Laravel 5.6.24 中你可以使用whereJsonDoesntContain():

TABLE::whereJsonDoesntContain('list', 'value')->get();
Run Code Online (Sandbox Code Playgroud)


luc*_*gic 4

DB::table('table')->whereNull('list->key')->get();