0
조건부 IF 문을 사용하는 MySQL식이 있습니다. MySQL 표현식은 TRUE 또는 FALSE를 반환하지만 CodeIgniter의 쿼리 빌더에서 사용할 때 오류가 발생합니다. 이 오류는 조건부 결과가 열과 같이 읽음을 나타내지 만 어떻게 해결할 수 있습니까? 감사.쿼리 작성기가 열과 같이 조건부로 읽음 - 필드 목록의 알 수없는 열
MySQL은 :
SELECT
positions.max_vol AS attendee_limit,
COUNT(users_positions.user_id) AS total_attendees,
IF(COUNT(users_positions.user_id) < positions.max_vol
OR positions.max_vol IS NULL,
TRUE,
FALSE) AS result
FROM
positions
INNER JOIN
users_positions ON positions.id = users_positions.position_id
WHERE
positions.id = 16
AND users_positions.calendar_date = '2016-09-05'
기능 :
이private function check_attendee_limit($pos_id = NULL, $date = NULL)
{
$this->db->select('positions.max_vol, COUNT(users_positions.user_id), IF(COUNT(users_positions.user_id) < positions.max_vol OR positions.max_vol IS NULL, TRUE, FALSE)');
$this->db->from('positions');
$this->db->join('users_positions', "positions.id = users_positions.position_id", 'inner');
$this->db->where('positions.id', $pos_id);
$this->db->where('users_positions.calendar_date', $date);
$query = $this->db->get();
return $query->result(); // return the rows selected
}
오류 :
A Database Error Occurred
Error Number: 1054
Unknown column 'TRUE' in 'field list'
SELECT `positions`.`max_vol`, COUNT(users_positions.user_id), IF(COUNT(users_positions.user_id) < positions.max_vol OR positions.max_vol IS NULL, `TRUE`, FALSE)
FROM `positions`
INNER JOIN `users_positions` ON `positions`.`id` = `users_positions`.`position_id`
WHERE `positions`.`id` = '15'
AND `users_positions`.`calendar_date` = '2016-09-05'
Filename: models/projects/Calendar_model.php
Line Number: 141
아에 대한 자세한 정보를 찾을 수 있습니다, 당신은 완전히 맞아. 오류에서 그 등 진드기를 봤지만 TRUE가 그런 식으로 이스케이프 처리되면 안된다는 사실을 알지 못했습니다. 설명 해줘서 고마워. – user126440