$where = null; if ($business_no != '1') { $where['cia.business_no'] = $business_no; } else if ($keyword) { $where['cia.business_no|pi.customer_name'] = ['like', "%".$keyword."%"]; },当keyword=王的时候,找不到数据,但确认数据表是有一个customer_name叫王婷
时间: 2024-03-09 11:50:26 浏览: 67
Mysql性能优化案例研究-覆盖索引和SQL_NO_CACHE
如果你确定数据表中存在 `customer_name` 为王婷的记录,但是查询出来却没有,那么可能是因为 like 查询的模糊匹配符 `%` 位置不正确导致的。
你可以尝试将 `%` 符号的位置改为下面这样:
```
$where['cia.business_no|pi.customer_name'] = ['like', "%".$keyword."%"];
```
这样就可以保证在查询 cia.business_no 和 pi.customer_name 字段时都能够匹配到含有王的记录了。另外,你也可以打印一下 `$where` 变量的值,检查生成的查询语句是否符合你的预期。
阅读全文