У меня есть такой запрос:
$query = "Select EXISTS(SELECT * FROM grp_user AS pivot JOIN groups
AS g ON pivot.grp_id = g.id JOIN vote ON g.id = vote.grp_id WHERE
pivot.grp_id = :grp_id AND pivot.user_id = :user_id)";
и я хочу запустить его. поэтому я попробовал:
$res = DB::select($query,array("grp_id"=>250,"user_id"=>1));
В идеале res должен иметь логическое значение, но вместо этого он имеет массив вроде:
[{"EXISTS(SELECT * FROM grp_user AS pivot JOIN groups AS g ON pivot.grp_id = g.id JOIN vote ON g.id = vote.grp_id WHERE pivot.grp_id = ? AND pivot.user_id = ?)":1}]
Обратите внимание на 1 в конце, это значение, которое меня интересует (его 1 или 0).
Как я могу сделать эту работу или добиться этого «путаницы»?
Почему бы просто не проверить, пусто оно или нет:
$query = "Select * FROM grp_user AS pivot JOIN groups
AS g ON pivot.grp_id = g.id JOIN vote ON g.id = vote.grp_id WHERE
pivot.grp_id = :grp_id AND pivot.user_id = :user_id LIMIT 1";
$res = DB::select($query,array("grp_id"=>250,"user_id"=>1));
return (count($res) > 0) ? 1 : 0;
Других решений пока нет …