我刚刚升级到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。
答案 0 :(得分:0)
我相信使用distinct
关键字
SELECT distinct movies.*
FROM movies
WHERE movies.title = 'example'