2012-06-16 6 views
4

월요일에 Comp Science 프로젝트 프로젝트를 진행하는 중입니다. 쿼리에 관한 MySQL 관련 질문을 발견했습니다.MySQL 쿼리 및 OR 연산자 Logic

내가 달성하고자하는 것은 단어를 통해 이루어집니다.

만약 열 에 = 제이크와 칼럼 코너 OR = 코너에 열 및 열 =에서 =에서 제이크 특정 테이블에서 CID를 얻을.

내가 지금까지이 것은 내가이 쿼리가 작동하도록하기 위해 할 수있는이 무엇이

$query="SELECT cID FROM conversation WHERE to='$to' AND to='$from' OR to='$from' AND  from='$to'"; 

입니까? 미리 감사드립니다. FROMTO 모두 MySQL reserved keyword이며, 따라서 역 따옴표로 인용이 필요합니다

답변

11

당신은 그룹에 논리 OR

$query=" 
    SELECT cID 
    FROM conversation 
    WHERE 
     /* to Jake, from Connor */ 
    (`to`='$to' AND `from`='$from') 
     /* OR to connor, from jake */ 
    OR (`to`='$from' AND `from`='$to')"; 

참고로 구분 된 두 개의 조건 쌍을, () 몇 쌍을 필요로한다.

+0

@MarkByers를 입력 한대로 다른 사람이 넣어 깨달았다. 'TO'도 예약되어 있습니다. –

+0

Op는 변수 $에서 $로도 벗어나야합니다. –

+0

@JeromeWAGNER 그가 알지 못하는 것을 모릅니다. –

1

이것은 테스트되지 않았지만 당신은 to = '$ to'와 to = '$ from'(이것은 내 것이 아닌 것으로 추정 할 수 있어야합니다.)를 대괄호로 묶어야한다고 생각하겠습니까 ??

그냥 내가, 그것을 감사 예, 인용

+0

초기 값이 어느 쪽에서 데이터베이스에 저장 되었는가에 따라 다르지만 실제로는 그렇지 않을 수 있습니다. ffieicne하지만 그것은 내가 현재 이해하고있는 것입니다. – ronnockoch

+0

오, 신경 쓰지 마라. LAdaRaider – ronnockoch

+0

나는 그것이 출석해서는 안된다고 생각한다는 의견에 말했다. – Stefan

0
$query="SELECT cID FROM conversation WHERE 
(to='$to' OR to='$from' OR to='$from') AND from='$to'"; 
+0

이 쿼리로 MySQL 오류가 다시 발생합니다 SQL 구문에 오류가 있습니다. 오른쪽 문법이 'to ='5 '또는 OR ='1 '또는 OR ='1 '근처에서 사용하도록 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. 그리고 from ='5 'at line 2 – ronnockoch

+0

대답은 내 것이고, 그 대답은 더 잘하고 그 말을 따르십시오. – Tschallacka

+0

-1 예약어 사용 – Steve