Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > MYSQL สอบถามการตรวจหาข้อมูลซ้ำภายในไอดีเดียวกัน และทำการลบให้เหลือเพียงอันเดียว



 

MYSQL สอบถามการตรวจหาข้อมูลซ้ำภายในไอดีเดียวกัน และทำการลบให้เหลือเพียงอันเดียว

 



Topic : 130133



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์




อยากศึกษาเรียนรู้คำสั่งในการ query ภายใน sql ครับ
table ชื่อว่า `data_email`

row ของตารางประกอบไปด้วย
id_email, id_user, email

ต้องการตรวจหาอีเมล์ซ้ำจากตาราง email โดยให้ค้นหาที่ซ้ำกันภายใน id_user เดียวกัน แล้วทำการลบออกให้เหลือเพียงตัวเดียว

ขอบคุณล่วงหน้าครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-01-30 15:22:35 By : zodaema View : 1609 Reply : 12
 

 

No. 1

Guest


มีข้อมูลประกอบไหม






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-30 15:29:56 By : OOP
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

DISTINCT หรือ GROUP BY ครับ ไม่ยาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-30 16:09:58 By : mr.win
 

 

No. 3



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : mr.win เมื่อวันที่ 2018-01-30 16:09:58
รายละเอียดของการตอบ ::
ขอตัวอย่างสักนิดได้ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-30 20:30:50 By : zodaema
 


 

No. 4



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้า id_email เป็น primary
Code (SQL)
delete t
from tb1 as t 
left join (select min(id) x, uid from tb1 group by uid) as m 
	on m.uid = t.uid
where t.id>m.x

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-30 21:11:54 By : Chaidhanan
 


 

No. 5



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้พอเข้าใจหลักการการใช้คำสั่ง group by แล้วครับ แต่ยังงงวิธีการทำให้เก็บไว้แค่1ข้อมูล ที่เหลือลบทิ้งออกหมด

Code (SQL)
Select email
From data_email
Group By id_user
Having count(email)>1

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-31 12:17:41 By : zodaema
 


 

No. 6

Guest


column ไหนเป็น PK ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-31 13:02:37 By : OOP
 


 

No. 7



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : OOP เมื่อวันที่ 2018-01-31 13:02:37
รายละเอียดของการตอบ ::
PK คือ id_email ครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-31 14:50:15 By : zodaema
 


 

No. 8

Guest


Code (SQL)
DELETE FROM data_email WHERE id_email IN(Select MIN(id_email)From data_email Group By id_user Having count(email)>1)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-31 15:04:06 By : OOP
 


 

No. 9



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


คห 8 ได้ทดสอบหรือยังครับ น่าจะมีปัญหาหลายอย่างนะครับ

1 result ของ "Select MIN(id_email) from data_email Group By user_id Having count(id)>1"
กรณี user เดียวกัน มี email มากกว่า 3 ก็จะได้ แค่อันเดียว

2 ไวยกรณ์ สำหรับ การ delete ไม่ถูกต้อง

ลองดูตัวอย่างที่ผมตอบไว้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-01-31 22:23:52 By : Chaidhanan
 


 

No. 10

Guest


ได้เหมือนกันครับ แต่ข้อเสียคือต้อง Execute หลายรอบ จนกว่าข้อมูลซ้ำจะหายไปครับ ผมดูของคุณละคับ น่าจะโอเคสุดละ แต่กลัว เจ้าของกระทู้จะงงๆๆ เลยแนะนำแบบนี้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-01 11:09:08 By : OOP
 


 

No. 11



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้ผมใช้อีกวิธีนึงก็คือการสร้างตาราง temp เอาไว้ แล้วทำการเลือก Insert พวก DISTINCT มาเก็บพักเอาไว้
แล้วค่อยเคลียข้อมูลออกหมด ย้ายข้อมูล temp กลับมา

แต่ดูจะเป็นวิธีที่ยุ่งยากมากๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-01 16:15:53 By : zodaema
 


 

No. 12

Guest


แนะนำให้ดูที่ NO.4 ครับ อันนี้น่าจะโอเคสุดละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-01 16:18:57 By : OOP
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : MYSQL สอบถามการตรวจหาข้อมูลซ้ำภายในไอดีเดียวกัน และทำการลบให้เหลือเพียงอันเดียว
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่