Mysql的select in会自动过滤重复的数据
生活随笔
收集整理的這篇文章主要介紹了
Mysql的select in会自动过滤重复的数据
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Mysql的select in會自動過濾重復(fù)的數(shù)據(jù)
默認(rèn)使用 SELECT 語句;
當(dāng)加上in范圍后,結(jié)果如下圖:
in范圍內(nèi)的數(shù)據(jù),如果有重復(fù)的,只會選擇第一個數(shù)據(jù)。
所以如果不是直接使用SQL語句來查詢,而是在代碼中來查詢時,記得使用 distinct 關(guān)鍵字
Mysql中IN條件有重復(fù)性能有影響嗎?一定會,所以一定要去重
如:(模仿代碼查詢情況,代碼查詢之后還有IN查詢,記得要去重)
select id, name from table1 where ref_id in (select id from table2 )其實(shí)是相當(dāng)于:
select id, name from table1 where ref_id in (select distinct id from table2 )因?yàn)閠able2中的id可能會存在重復(fù)的情況。
IN中為空,報錯,id IN(),本來查到的就是空,這條sql沒有意義,mysql不會允許這么查,浪費(fèi)性能。
mysql,in中重復(fù)的記錄也查出的方法
如題,舉例說明下,假如where in (1,2,3,2,5,3);其中2,3都有重復(fù)的,想要讓查出的記錄數(shù)量和in中的相同,重復(fù)的也會顯示重復(fù)的記錄,就是得出的記錄是6條。
in有重復(fù)沒辦法,我能知道的就是
select * from xxx where in (1,2,3,5)
union all
select * from xxx where in (2,3)
自己在外邊先把重復(fù)的挑出來
總結(jié)
以上是生活随笔為你收集整理的Mysql的select in会自动过滤重复的数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: erlang精要(13)-基本语法(1)
- 下一篇: mysql,in中重复的记录也查出的方法