簡體   English   中英

MySQL 5.7根據不同的列返回表的所有列

[英]MySQL 5.7 return all columns of table based on distinct column

我剛剛升級到MySQL 5.7,不幸的是, GROUP BY某些功能已消失。 我想從我的movies表中選擇所有電影,只要int類型的movies.id不重復即可。 我在MySQL 5.6中的上一個查詢是:

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

如果我有兩部具有相同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的所有列。

我相信使用distinct關鍵字會很容易

SELECT distinct movies.*
FROM movies 
WHERE movies.title = 'example'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM