MySQL通过列!= x选择组

时间:2012-11-25 18:12:45

标签: mysql sql select-query

我正在尝试选择某个列没有特定值的行,例如0,但是我无法让它工作。

SELECT *
FROM rentals
GROUP BY date, rooms, price 
HAVING show_independently < 1

如果show_independently为1,那么我不想将它们分组。但是,即使大多数行的show_independently为0,此语句也不显示任何行。

3 个答案:

答案 0 :(得分:2)

SELECT date, rooms, price 
FROM rentals
WHERE show_independently < 1
GROUP BY date, rooms, price 

答案 1 :(得分:0)

当您使用聚合函数过滤数据时,将使用HAVING子句。

使用HAVING的典型查询:

SELECT yourColumn, aggregate_function(otherColumn)
FROM yourTable
WHERE yourColumn = someValue
GROUP BY yourColumn
HAVING aggregate_function(otherColumn) = someOtherValue

我认为您希望使用WHERE子句:

SELECT date, rooms, price 
FROM rentals
WHERE show_independently < 1
GROUP BY date, rooms, price 

答案 2 :(得分:0)

如果您只想将某些行分组并将其他行保留为未分组,则可以使用UNION

SELECT *
FROM rentals
WHERE show_independently <> 1
GROUP BY date, rooms, price 
UNION ALL
SELECT *
FROM rentals
WHERE show_independently = 1

仅对show_independently不为1的那些进行分组,并将其余部分分组,而不对其进行分组。

相关问题