2016-09-05 3 views
1

내 데이터베이스가없는 일부 값 : 아무 가치가없는 경우에는이 있다면 나는 이름과 성 및 국가를 선택 할MySQL은 SELECT 우선 순위

Name Surname Country Salary 

John Walker  USA  800 
     Walker  Canada 1000 
Peter Walker  Canada 800 
John Walker    900 
Peter Farmer  USA  1200 
... ...  ... 

는 나는, 이름 및 국가 별 선택하려는 없습니다 값, 성 및 국가별로 선택하고 싶습니다.

SELECT Salary FROM table_name 
WHERE (Name='InputFromPHP' AND Surname='InputFromPHP' AND Country='InputFromPHP') 
OR (Name='InputFromPHP' AND Surname='InputFromPHP') 
OR (Name='InputFromPHP' AND Country='InputFromPHP') 

내가 우선 순위를 부여 할, 그래서 PHP로 입력했다 정확히 무엇을 선택하지만, 데이터베이스에 여러 값이있는 경우는 SQL 오류를 제공합니다 :

지금 사용하고 있습니다.

미리 감사드립니다.

+0

선택 급여 ** From Table_Name **? –

+0

네, 지금은 정정하지 못했습니다. 죄송합니다. – Lukas

+0

또한'AND' 체인을'(something = 'something'AND Surname = ' otherthing ') OR (Name ='something 'AND Sameame ='otherthing ')' –

답변

5

당신은 order bylimit을 사용할 수 있습니다 즉 or 절에서 수행 할 수 있도록 where 절은 항상 Name='InputFromPHP' 필요

SELECT Salary 
FROM  table_name 
WHERE Name='InputFromPHP' 
    AND (Surname='InputFromPHP' OR Country='InputFromPHP') 
ORDER BY CASE Surname WHEN 'InputFromPHP' THEN 0 ELSE 1 END, 
     CASE Country WHEN 'InputFromPHP' THEN 0 ELSE 1 END 
LIMIT 1 

참고.

+0

감사합니다. 작동하는 것 같습니다. :)) 종류는 안부 – Lukas