m1509001
- m1509001 收藏了问题GridView 如何取消排序
- m1509001 赞了回答
我个人认为吧,如果语句复杂,不如直接写sql。
你这个可以这么改return $find->union($not)->offset($offset)->limit(10)->asArray()->all();
改成:
return (new Query())->from(['tmpA' => $find->union($not)])->offset($offset)->limit(10)->all();
最后生成的语句类似如此:
SELECT * FROM ( (SELECT * FROM `pet_party` WHERE (`p_partytime` > '2016-07-30 18:24:15') AND (`p_area`='2') ORDER BY `p_partytime`) UNION ( SELECT * FROM `pet_party` WHERE (`p_partytime` > '2016-07-30 18:24:15') AND (`p_area` <> '2') ORDER BY `p_partytime` ) ) `tmpA` LIMIT 5 OFFSET 0
- m1509001 收藏了教程Yii2清空有外键约束的表