2014-04-08 3 views
0

저는 mysql과 php에 새로 왔습니다. 두 쿼리가 mysql에서 어떻게 병합되는지 알고 싶습니다. 전용 테이블에 표시 (A와 B) 또는 (B 아나 A) :mysql 쿼리에서 두 조건을 병합하는 방법은 무엇입니까?

id  Username1 USername2 
1  A   A 
2  A   B 
3  B   A 
4  A   A 
5  A   C 
6  B   A 
7  A   B 
8  A   A 

가 지금은 쿼리를 작성하려면 : 나는 테이블 testTable 있습니다.

2  A  B 
3  B  A 
6  B  A 
7  A  B 

그게처럼 내가 원하는하지만 난 새로운 오전으로 그래서 나는이 작업을 수행 할 수 없습니다입니다.

나는

username2 = B 그래서 나는 표를 얻을이

$query = mysql_query("SELECT * FROM tableWriteText WHERE txt_Userame1='$txt_Useram1' AND txt_Userame2='$txt_Userame2' ORDER BY id "); 

시도와 PHP로 아이폰에서 보내고

내가 아이폰 username1 = A에서 보내는 가정 얻을

2 A  B 
7 A  B 

하지만 내가 iPhone에서 보낼 때마다 나는 원한다. username1 = A, username2 = B

또는

내가 아이폰 username1 = B에서 보내는 두 번째 시간, username2 = A

때마다, 나는이 내가 들어

2  A  B 
3  B  A 
6  B  A 
7  A  B 

같은 순서에 의해 모든 A와 B 테이블을 얻으려면 또한 시도 :

$query = mysql_query("SELECT * FROM tableWriteText WHERE (txt_Userame1='$txt_Useram1' AND txt_Userame2='$txt_Userame2') OR (txt_Userame2='$txt_Useram2' AND txt_Userame1='$txt_Userame1') ORDER BY id "); 

모든 아이디어 나 제안을 매우 환영 할 것입니다.

답변

0

마지막으로 작성한 쿼리가 거의 정확합니다. 단지 논리적 인 문제가 있습니다.

(txt_Userame1='$txt_Useram1' AND txt_Userame2='$txt_Userame2') 
OR 
(txt_Userame2='$txt_Useram2' AND txt_Userame1='$txt_Userame1') 

표시되는 순서를 변경 했으므로 변수를 스 와이프해야합니다.

이 당신을 위해 유용 할 수 있습니다 ...

"SELECT * FROM tableWriteText WHERE (txt_Userame1 = '$txt_Useram1' AND txt_Userame2 = '$txt_Userame2') OR (txt_Userame1 = '$txt_Useram2' AND txt_Userame2 = '$txt_Userame1') ORDER BY id " 
+0

응답 데이터는 다음과 같습니다. – Tina

+0

주는 A와 B의 조합입니다. 나는 A와 B, B와 A의 조합을 원해. – Tina

+0

업데이트 된 쿼리를 사용해 보셨습니까? –

0

당신은 쿼리에 하나 개 이상의 조건을 추가해야합니다 : 당신이하지 않아도,

SELECT * FROM tableWriteText 
WHERE 
txt_Userame1='$txt_Useram1' AND txt_Userame2='$txt_Userame2' 
OR 
txt_Userame1='$txt_Userame2' AND txt_Userame2='$txt_Useram1' 
ORDER BY id, asc 

ANDOR보다 높은 우선 순위를 가지고 여기서 브래킷을 사용합니다.

+0

대괄호로 인해 코드가 읽기 쉽고 디버깅하기 쉽다. –

+0

이 쿼리가 작동합니다. 고마워 .... – Tina

관련 문제