thinkphp json条件查询
时间: 2023-10-05 20:13:57 浏览: 167
在 ThinkPHP 中,可以使用 `where` 方法来进行 JSON 条件查询。假设有一个名为 `user` 的数据表,其中有一个名为 `data` 的 JSON 字段,可以使用以下代码进行条件查询:
```php
$user = db('user')
->where('JSON_EXTRACT(data, "$.age")', '>', 18)
->where('JSON_EXTRACT(data, "$.gender")', 'male')
->select();
```
上述代码使用了 `JSON_EXTRACT` 函数来提取 JSON 字段中的值,并与指定的条件进行比较。其中 `$` 表示 JSON 根节点,`.` 表示成员访问操作符。
如果需要进行更复杂的 JSON 条件查询,可以使用 `whereRaw` 方法来编写原生 SQL 语句。例如:
```php
$user = db('user')
->whereRaw('JSON_EXTRACT(data, "$.age") > ? AND JSON_EXTRACT(data, "$.gender") = ?', [18, 'male'])
->select();
```
在上述代码中,使用了 `?` 占位符来传递参数,避免了 SQL 注入的风险。
阅读全文