【发布时间】:2013-12-04 08:01:03
【问题描述】:
我已对此进行了搜索,但找不到有关此特定问题的任何答案。对于我的数据库类,我们必须演示在我们创建的数据库上使用一些 SQL 函数。其中一个函数是 MIN(),而另一个是 MAX() 等等。
发生在我身上的是,当运行命令 SELECT nome AS mais_barato FROM equipamento HAVING MIN(preço);(名称为葡萄牙语:nome=name、mais_barato=cheaper、equipamento=equipment、preço=price)时,输出如下:
+-------------+
| mais_barato |
+-------------+
| ZON Hub |
+-------------+
人们期望的地方(原始表格进一步如下,供您自己查看预期):
+-------------+
| mais_barato |
+-------------+
| Modem |
+-------------+
这句话有什么问题?运行SELECT nome AS mais_caro FROM equipamento HAVING MAX(preço); (mais_caro=more_expensive) 时,输出与使用MIN(preço) 的输出相同。
原表equipamento是(cod是与设备关联的唯一代码):
+-----+----------+--------+
| cod | nome | preço |
+-----+----------+--------+
| 152 | ZON Hub | 120 |
| 228 | PowerBox | 100 |
| 444 | Fibra | 200 |
| 673 | NetGear | 70 |
| 779 | Modem | 50 |
+-----+----------+--------+
我在 Ubuntu 13.10 上使用 mysql Ver 14.14 Distrib 5.5.34, for debian-linux-gnu (i686) using readline 6.2
非常感谢
【问题讨论】:
-
您好,我也是巴西人,您知道,不要在字段名称上使用特殊字符
preço列应该只是preco -
特殊字符我知道,因为老师(他不是一个很好的老师)所以我只是用它们来练习
-
您的查询在逻辑上不正确。 HAVING 条件未正确表达:您将使用逻辑表达式。 MySQL 误解了 bookean 条件。看看@sqlfiddle.com/#!2/279d2/5
-
是的,我现在明白我做错了什么,由于问题答案中讨论的事实,我会认真考虑迁移到 PostgreSQL
标签: mysql min having ubuntu-13.10