我的数据库缺少一些值:
Name Surname Country Salary
John Walker USA 800
Walker Canada 1000
Peter Walker Canada 800
John Walker 900
Peter Farmer USA 1200
... ... ...
我想SELECT Name和Surname and Country,如果没有值, 我想按姓名和国家选择,如果没有值, 我想按姓氏和国家选择。
我现在正在使用:
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 :(得分:5)
您可以使用limit
和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
:
where
请注意,您的Name='InputFromPHP'
子句始终需要or
,因此可以从double x = 0.57145732;
x = (double)(Math.round((x * 100) * 10)) / 10;
子句中删除。