2014-12-13 66 views
1

下面的MySQL查询不能正常工作Mysql中的错误使用GROUP BY和LIKE运算符选择查询?

SELECT * 
FROM `log` 
group by `id`,`domain` 
WHERE `domain` LIKE '%facebook%' 

但是当我删除以下行正常工作。

group by `id`,`domain` 

这正常工作

SELECT * 
    FROM `log` 
    WHERE `domain` LIKE '%facebook%' 

我怎样才能解决这个问题呢?

+0

虽然你的语法对于MySQL来说是合法的,但它的结果是不可预知的。看一看[MySQL处理GROUP BY](http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html) – 2014-12-13 06:32:08

回答

1

WHERE子句必须GROUP之前先:

SELECT * 
FROM `log` 
WHERE `domain` LIKE '%facebook%' 
GROUP BY `id`,`domain` 

docs

[FROM table_references 
    [WHERE where_condition] 
    [GROUP BY {col_name | expr | position} 
     [ASC | DESC], ... [WITH ROLLUP]] 
1

,我发现自己的答案。 订单应改变 ..

以下工作正常。

SELECT * 
FROM `log` 
WHERE `domain` LIKE '%facebook%' 
group by `id`,`domain`