[英]MYSQL query - simple way to return all values from one column based on a DISTINCT value in another column in the same table?
[英]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.