2010-12-05 53 views
2

我使用mysql GREATEST()函数从列(苹果或桃子)中选择最高的整数值。通过最大值检测查询字段()

+----+------------------+ 
| id | apples | peaches | 
+----+------------------+ 
| 1 | 8 | 4 | 
| 2 | 2 | 6 | 
| 3 | 3 | 9 | 
| 4 | 7 | 2 | 
| 5 | 4 | 4 | 
+----+------------------+ 

使用$result = "SELECT GREATEST(apples, peaches) FROM table";echo $result,我得到:

8 
6 
9 
7 

下一页到每个值,我想呼应相应的水果名称和水果图标。如何通过MYSQL查询实现下面的图像?

alt text

另外,注意相等的值不被GREATEST()功能显示。有没有办法显示相等的值?

+1

你只有2列,或者这是一个简化例? – 2010-12-05 00:21:50

+0

是的,我需要比较2列 – Noob 2010-12-05 00:26:17

回答

4
SELECT 
IF(apples >= peaches, apples, peaches) AS quantity, 
IF(apples >= peaches, 'apples', 'peaches') AS fruit 
FROM ... 

,或者,如果你不想让苹果成为平等默认的,想知道当两个水果也同样表示:

SELECT 
IF(apples >= peaches, apples, peaches) AS quantity, 
CASE WHEN apples > peaches THEN 'apples' WHEN peaches > apples THEN 'apples' ELSE 'both' END AS fruit 
FROM ...