以下事件记录 WHERE IN 查询不起作用。根据文档,这应该有效:
$data = $dropDownData->find()
->select('country, country_text')
->distinct()
->WHERE(['in', 'server', $servers]);
$listData = ArrayHelper::map($data,'country', 'country_text');
等价的 sql 是:
$query = "SELECT DISTINCT country, country_text
FROM `dropDownData`
WHERE server IN ({$servers})";
$servers 只包含一个字符串 1,2,4
我在这里做错了什么?
最佳答案
基于 Yii2 文档 $servers
应该是一个数组而不是一个字符串。
https://www.yiiframework.com/doc/guide/2.0/en/db-query-builder#operator-format
尝试使用适当的数组:
$servers = [1,2,4]
$data = $dropDownData->find()
->select('country, country_text')
->distinct()
->WHERE(['in', 'server',[1,2,4]]);
或者
$data = $dropDownData->find()
->select('country, country_text')
->distinct()
->WHERE(['in', 'server', $servers]);