在 Yii 2.0 中,你可以使用 yii\db\Query
或 yii\db\ActiveQuery
来执行 FIND_IN_SET()
函数进行查询。下面是一个示例代码,演示了如何在 Yii 2.0 中使用 FIND_IN_SET()
查询:
使用 yii\db\Query
:
php">use yii\db\Query;
$query = (new Query())
->select(['id', 'name'])
->from('your_table')
->where(['>', 'FIND_IN_SET(:value, your_column)', 0])
->addParams([':value' => 'your_value']);
$results = $query->all();
foreach ($results as $result) {
echo $result['id'] . ' - ' . $result['name'] . '<br>';
}
使用 yii\db\ActiveQuery
:
use yii\db\ActiveRecord;
class YourModel extends ActiveRecord
{
// ...
public static function findWithFindInSet($value)
{
return static::find()
->where(['>', 'FIND_IN_SET(:value, your_column)', 0])
->addParams([':value' => $value]);
}
}
// 使用方式:
$results = YourModel::findWithFindInSet('your_value')->all();
foreach ($results as $result) {
echo $result->id . ' - ' . $result->name . '<br>';
}
在上述示例中,我们通过使用 where(['>', 'FIND_IN_SET(:value, your_column)', 0])
条件来执行 FIND_IN_SET()
查询。我们将 :value
绑定到要查找的值,并使用 addParams()
方法添加参数绑定。
在第一个示例中,我们使用 yii\db\Query
创建查询对象,并指定要选择的字段和表名。然后,我们使用 where()
方法添加 FIND_IN_SET()
条件。
在第二个示例中,我们将 FIND_IN_SET()
查询封装到 YourModel
模型类的一个自定义查询方法 findWithFindInSet()
中。这样你就可以在模型类中直接调用该方法来执行查询。
请注意,your_table
是你要查询的表名,your_column
是包含逗号分隔值的列名,your_value
是你要查找的值。