2016-09-05 8 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

はい、私はちょうどそれをタイプしていません、今Im修正、申し訳ありません:) – Lukas

+0

また '()他のもの)OR(Name = 'something' AND Surname = '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