Php MySQL查询中的Yii2 REGEXP

Php MySQL查询中的Yii2 REGEXP,php,mysql,yii2,Php,Mysql,Yii2,在yii2中如何使用如下SQL查询 select * from Skill_Names where SkillName REGEXP 'PHP|MYSQL' 我不想要像(SkillName像%PHP%或SkillName像%MYSQL%)这样的东西。因为我需要使用REGEXP。最简单的是直接查询: Yii::$app->db->createCommand("select * from Skill_Names where SkillName REGEXP 'PHP|MYSQL'")-

在yii2中如何使用如下SQL查询

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

我不想要像
(SkillName像%PHP%或SkillName像%MYSQL%)这样的东西。
因为我需要使用REGEXP。

最简单的是直接查询:

Yii::$app->db->createCommand("select * from Skill_Names where SkillName REGEXP 'PHP|MYSQL'")->queryAll();
如果您有一个
ActiveRecord
类用于
Skill\u Names
表,您也可以使用
表达式

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

编辑:关于您的评论:您可以简单地使用where部分作为字符串,它将按原样返回:

SkillNames::find()->where("SkillName REGEXP 'PHP|MYSQL'")->all();
编辑2:操作员格式的您自己的解决方案:

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

它生成
SELECT*FROM SkillName=REGEXP'PHP | MYSQL'
参见
REGEXP
之前的
=
。正确格式
SkillName::find()->WHERE([“REGEXP”,“SkillName”,“PHP | MYSQL'])->all();
谢谢@BlizzThat's operator format,另一个不错的选择。我不知道
REGEXP
作为operator受支持,酷。我会将它添加到回复中。如果“PHP | MYSQL”来自用户,有没有办法以operator format转义?