如何在yii2中使用如下所示的SQL查询?
select * from Skill_Names where SkillName REGEXP 'PHP|MYSQL'
Run Code Online (Sandbox Code Playgroud)
我不想要像( SkillName Like %PHP% or SkillName Like %MYSQL% )我需要使用REGEXP那样的东西.
最简单的是直接查询:
Yii::$app->db->createCommand("select * from Skill_Names where SkillName REGEXP 'PHP|MYSQL'")->queryAll();
Run Code Online (Sandbox Code Playgroud)
如果你有一个表的ActiveRecord类,Skill_Names你也可以使用Expression:
SkillNames::find()->where(['SkillName' => new \yii\db\Expression("REGEXP 'PHP|MYSQL'"])->all();
编辑:关于你的评论:你可以简单地使用where部分作为字符串,它将按原样返回:
SkillNames::find()->where("SkillName REGEXP 'PHP|MYSQL'")->all();
Run Code Online (Sandbox Code Playgroud)
编辑2:您自己的运营商格式的解决方案:
SkillNames::find()->where(['REGEXP', 'SkillName','PHP|MYSQL'])->all();
Run Code Online (Sandbox Code Playgroud)