举杯邀月

yii2 条件使用 FIND_IN_SET 表达式查询

摘要:当表达式对象嵌入到 SQL 语句或片段时,yii2 有自带的类去实现表达式条件,主要用于将原始 SQL 表达式传递给查询。

当表达式对象嵌入到 SQL 语句或片段时,yii2 有自带的类去实现表达式条件,主要用于将原始 SQL 表达式传递给查询。

使用 Class yii\db\Expression 进行表达式条件的查询。

比如,我们要使用mysql的 FIND_IN_SET 表达式查询:

use yii\db\Expression;

$flag = 'a';
$where = new Expression("FIND_IN_SET(:flag_{$flag}, flag)",[":flag_{$flag}"=>$flag]);

$result = Table::find()->where($where)->createCommand()->getRawSql();

var_dump($result);
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8

打印结果为:SELECT * FROM table WHERE FIND_IN_SET(‘a’, flag)

更多信息参考文档:https://www.yiichina.com/doc/api/2.0/yii-db-expression

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fc707bcd7e56.html

2020-06-16 标签: phpyii2