MySQL 5.7根据不同的列

时间:2016-05-18 07:36:27

标签: mysql sql database

我刚刚升级到MySQL 5.7,不幸的是,GROUP BY的一些功能已经消失了。只要movies类型的movies.id不重复,我就想从我的int表中选择所有电影。我之前在MySQL 5.6中的查询是:

SELECT *
FROM movies
WHERE movies.title LIKE '%example%'
GROUP BY movies.id

如果我有两部同名的电影,它只会显示一部电影,而不是那部电影及其副本。

当我升级到MySQL 5.7时,GROUP BY给了我错误,而我被告知要使用ORDER BY。但是这个查询:

SELECT *
FROM movies
WHERE movies.title LIKE '%example%'
ORDER BY movies.id

返回重复的电影。那么,有没有办法过滤掉这个,如果不重复,只返回一行?

编辑:例如,如果这是我的movies表:

movies
==================
|  id  |   title  |
==================
| 1    | example  |
------------------
| 2    | example  |
------------------
| 1    | example  |
------------------

以下是每个查询的输出:

Previous query result (with MySQL 5.6)
=======
1 | example
2 | example

New query result (with MySQL 5.7 and ORDER BY)
=======
1 | example
1 | example
2 | example

我希望最终结果不包含重复项(因此结果应该与第一个查询结果类似)。

编辑2:我理解我有点滥用MySQL处理GROUP BY的方式。不幸的是,我没有太多的MySQL经验,并从StackOverflow得到答案。我只想返回表格中不包含重复id s。

的所有列

1 个答案:

答案 0 :(得分:0)

我相信使用distinct关键字

会很容易
SELECT distinct movies.*
FROM movies 
WHERE movies.title = 'example'