前提・実現したいこと
下記のSQL文をCakephp3のクエリビルダで実現する方法がわかりません。
クエリビルダでは実現不可能なのでしょうか?
テーブル
CREATE TABLE `matching` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `post_user_id` int(11) NOT NULL, `com_user_id` int(11) NOT NULL, `create_at` datetime DEFAULT CURRENT_TIMESTAMP, `update_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `UNIQUE` (`post_user_id`,`com_user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
SQL文
SELECT id,CASE WHEN post_user_id = 1 THEN post_user_id ELSE com_user_id END as user_id FROM matching
試したこと
$query = $this->Matching->find(); $case = $query->newExpr()->addCase( [$query->newExpr()->add(['post_user_id' => 1])], ['post_user_id','com_user_id'], ['integer','integer'] ); $matching = $query->select(['user_id' => $case]);
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。