X

جستجو


جستجوی مقادیر تکراری در MYSQL

جستجوی مقادیر تکراری در MYSQL
  • اشتراک گذاری

جستجوی مقادیر تکراری در MYSQL

با سلام خدمت همراهان عزیز شورت کدز ، در این مقاله قصد داریم روش جستجوی مقادیر تکراری همراه با تعداد آنها در MYSQL آموزش دهیم . میگویند نیاز مادر سرچ و جستجوست و من نیز سر یکی از پروژه ها که یک دیتابیس واقعا بهم ریخته ای داشت میخواستم که یکی از ستون ها را یونیک قرار دهم اما با پیغام مورد تکراری MYSQL روبرو میشدم . بعد از اون خطا شروع کردم به جستجو کردن و بلاخره روش خروجی گرفتن از دیتاهای تکراری را پیدا کردم . خب بریم سراغ آموزش

ساخت یک جدول در MYSQL

چون شاید شما حوصله نداشته باشید ما یک مثال را بصورت کامل ارائه میدهیم تا بتونید براحتی تست کنید .

ابتدا با دستورات زیر در یک دیتابیس مقادیر زیر را وارد کنید تا جدول شما ساخته شود . لازم به ذکر است که این کد ها را در phpmyadmin و در تب SQL باید وارد کنید

CREATE TABLE MyUser (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    phone VARCHAR(50) NOT NULL
);

وارد کردن مقادیر دلخواه در MYSQL

حالا که جدول کاربران ما ساخته شد لازم است که مقادیری در آن وارد کنیم که شامل مقادیر تکراری از نام و شماره تماس میباشد .

INSERT INTO MyUser (name,phone) 
VALUES ('ali ','09121201212'),
       ('alireza' ,'09121201212'),
       ('ahmad' ,'09121201212'),
       ('ali ','09104487223'),
       ('ali ','09188742562'),
       ('bahman ','09124457787')

جستجو مقادیر تکراری

حال وقت آن رسیده که در جدول ساخته شده خود که شامل نام و شماره تماس میباشد مقادیر تکراری از هر کدام را بیابیم بدین منظور از کد زیر استفاده میکنیم .

SELECT 
    name, COUNT(name)
    
FROM
    `MyUser`
GROUP BY 
    name 
  
HAVING  COUNT(name) > 1;

خروجی دستور بالا بصورت زیر بمیباشد .

namme    |‌   COUNT(namme)
ali      |      3

در این دستور تنها مقدار نام بررسی شده است اما اگر میخواهید بطور مثال تمامی مقادیری که نام و شماره تماس آنها برابر است یا هر آنچه نیاز دارید میتوانید بصورت زیر استفاده کنید .

SELECT 
    col_Name , COUNT( col_Name ),
    col_Name2 , COUNT( col_Name2 )
    .
    .
    .
    
FROM
    table_name
GROUP BY 
    col_Name,
    col_Name2
    .
    .
    .
  
HAVING  COUNT(name) > 1;

ابتدا با استفاده از دستور SELECT فیلد های مد نظر خود را برای بررسی تعداد مقادیر تکراری انتخاب میکنیم و تعداد موجود هر کدام را با استفاده از تابع COUNT بررسی میکنیم سپس با استفاده از دستور GROUP BY تمامی ردیف ها را با استفاده از مقدار ستون هدف گروه بندی میکنیم . سپس با استفاده مقدار HAVING COUNT بررسی میکنیم که درصورتی که تعداد هر کدام از مقادیر بیشتر از یک بود نمایش داده شود .