2012-02-22 3 views
1

테이블에서 하나의 열에서 여러 플래그 MySQL의 쿼리를 필요로하지만 난 두 칼럼에 관심이있는 user_preferences_nameuser_preferences_status내가 여러 열이 있습니다이 아래 테이블 이름 기본 설정이

참고 PLZ 에서 user_preferences_name 열

user_preferences_name user_preferences_status  phone_service_id 
    a       1       555 
    b       0       456 
    c       0       236 
    d       1       122 
    e       1       456 
    f       0       777 
    g       0       555 
    h       0       888 
    i       1       112 
    .       .       . 
    .       .       . 
    .       .       . 

같은 여러 플래그는 많은 전 (A, B, F, Q, w)만을 필요로하고 각각의 user_preferences_name user_preferences_status (1,1,0,1,0)

거기있다

기본적으로 내가하고있는 것은 5 개의 다른 div가있는 div 형식의 HTML 양식을 만드는 것입니다. 각 div에는 2 개의 라디오 버튼이 있습니다. 의 경우 : - user_preferences_status == 1 인 에이블 라디오 버튼이 설정된 경우 5 개의 다이빙 및 라디오 버튼에 대해 다른 현명한 디스 에이블이 설정됩니다. 는 내가 무엇을하려고 :

class Prefrances extends Zend_Db_Table{ 

function Get_User_Prefrences($phone_service_id){ 
    $DB = Zend_Db_Table_Abstract::getDefaultAdapter(); 
    $select = $DB->select() 
     ->from('user_preferences' , array('user_preferences_name','user_preferences_value')) 
     ->where('phone_service_id = ?', $phone_service_id) 
     ->where('user_preferences_name = ?', 'a') 
     ->where('user_preferences_name = ?', 'b') 
     ->where('user_preferences_name = ?', 'f') 
     ->where('user_preferences_name = ?', 'q') 
     ->where('user_preferences_name = ?', 'w'); 
    return $select; 
    } 
} 

result = no rows 난, 일반적으로 MySQL의 쿼리에도 적용 내가 젠드로 변경할 것이다 수 있습니다 내 논리는 당신이 PLZ 내가 여기에 필요한 저를 인도 할 수 잘못된 생각

답변

0
$select = $DB->select() 
    ->from('user_preferences' , array('user_preferences_name','user_preferences_value')) 
    ->where('phone_service_id = ?', $phone_service_id) 
    ->where('user_preferences_name IN (?)', array('a', 'b', 'f', 'q', 'w')); 
+0

보스 내가 IN이 작동하지 않지만 내 쿼리에 구문 오류가 있습니다. ..BTW 고맙습니다. –

0

당신은 예를 들어 모순을 만듭니다. 비가 내리고 비가 내리는 것은 결코 사실이 아닙니다. 귀하의 경우

SELECT user_preferences_name, user_preferences_value FROM user_preferences 
WHERE 
    phone_service_id = $phoneserviceid 
    AND user_preferences_name = 'a' 
    AND user_preferences_name = 'b' 
    AND user_preferences_name = 'f' 
    AND user_preferences_name = 'q' 
    AND user_preferences_name = 'w'; 

절대 사실 일 수는 없습니다. 대신 garvey와 같은 subselect를 사용하거나 '항상'정적 하위 집합 인 경우이 하위 집합을 식별 할 수있는 열을 추가 할 수 있습니다.

관련 문제