Yii2 REGEXP in MySQL Query

How can I use a SQL query like the following in yii2?

select * from Skill_Names where SkillName REGEXP 'PHP|MYSQL' 

I don't need something like ( SkillName Like %PHP% or SkillName Like %MYSQL% ) since I need to use REGEXP.

+4
source share
1 answer

The simplest would be a direct query:

 Yii::$app->db->createCommand("select * from Skill_Names where SkillName REGEXP 'PHP|MYSQL'")->queryAll(); 

If you have an ActiveRecord class for the Skill_Names table, you can also use Expression :

SkillNames::find()->where(['SkillName' => new \yii\db\Expression("REGEXP 'PHP|MYSQL'"])->all(); Strike>

edit: As for your comment: you can just use the fragment literally as a string, it will be returned as is:

 SkillNames::find()->where("SkillName REGEXP 'PHP|MYSQL'")->all(); 

edit 2: Your own solution in operator format:

 SkillNames::find()->where(['REGEXP', 'SkillName','PHP|MYSQL'])->all(); 
+7
source

All Articles