Mysql的select in会自动过滤重复的数据
Mysql的select in會(huì)自動(dòng)過(guò)濾重復(fù)的數(shù)據(jù)
默認(rèn)使用 SELECT 語(yǔ)句;
當(dāng)加上in范圍后,結(jié)果如下圖:
in范圍內(nèi)的數(shù)據(jù),如果有重復(fù)的,只會(huì)選擇第一個(gè)數(shù)據(jù)。
所以如果不是直接使用SQL語(yǔ)句來(lái)查詢,而是在代碼中來(lái)查詢時(shí),記得使用 distinct 關(guān)鍵字
Mysql中IN條件有重復(fù)性能有影響嗎?一定會(huì),所以一定要去重
如:(模仿代碼查詢情況,代碼查詢之后還有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可能會(huì)存在重復(fù)的情況。
IN中為空,報(bào)錯(cuò),id IN(),本來(lái)查到的就是空,這條sql沒有意義,mysql不會(huì)允許這么查,浪費(fèi)性能。
mysql,in中重復(fù)的記錄也查出的方法
如題,舉例說(shuō)明下,假如where in (1,2,3,2,5,3);其中2,3都有重復(fù)的,想要讓查出的記錄數(shù)量和in中的相同,重復(fù)的也會(huì)顯示重復(fù)的記錄,就是得出的記錄是6條。
in有重復(fù)沒辦法,我能知道的就是
select * from xxx where in (1,2,3,5)
union all
select * from xxx where in (2,3)
自己在外邊先把重復(fù)的挑出來(lái)
總結(jié)
以上是生活随笔為你收集整理的Mysql的select in会自动过滤重复的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: erlang精要(13)-基本语法(1)
- 下一篇: spring.factories 的妙用