MySQL查询中的Yii2 REGEXP

4 php mysql yii2

如何在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那样的东西.

Bli*_*izz 8

最简单的是直接查询:

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)