TP5 查询 字符串条件如何实现 当查询条件是 (1,3,8) 数据库字段也是(2,3,4) 这种情况改如何查询呢?
时间: 2024-03-09 17:45:47 浏览: 53
一个字段同时满足多个条件的查询
在 ThinkPHP 5 中,可以使用 `exp` 方法来实现查询字符串条件。例如,如果查询条件为 `(1,3,8)`,数据库字段为 `(2,3,4)`,可以这样构建查询:
```php
$ids = '1,3,8';
$list = Db::name('table')
->where('find_in_set(field, :ids)', ['ids' => $ids])
->select();
```
其中,`find_in_set(field, :ids)` 表示在 `field` 字段中查找值为 `:ids` 的值,`:ids` 是绑定查询参数的占位符。
如果查询条件为字符串 `1,3,8`,可以使用 `exp` 方法构建查询:
```php
$ids = '1,3,8';
$list = Db::name('table')
->where('field in ' . Db::raw("( $ids )"))
->select();
```
其中,`Db::raw` 方法用于将字符串转换为原始查询语句,避免字符串中的 `,` 被解析为查询语句中的分隔符。
阅读全文