Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

प्रत्येक उपयोगकर्ता नाम की पहली घटना पर MySQL अद्यतन स्तंभ

मैं इसके लिए एक नए ध्वज स्तंभ के साथ गया था, साथ ही आपके अन्य प्रश्न यहां में मदद करने का लाभ मिला था। ।

डेमो स्कीमा सेटअप

create table table1
(
    id int auto_increment primary key,
    username varchar(30) not null,
    `date` date not null,
    dupeFlag int null, --  <---- New flag column, nullable, ignored on inserts below
    firstFlag int null --  <-- was first dupe for day? 2=yes, ignored on inserts below
);

insert table1 (username,`date`) values ('john','2015-01-01');
insert table1 (username,`date`) values ('kim','2015-01-01');
insert table1 (username,`date`) values ('john','2015-01-01');
insert table1 (username,`date`) values ('john','2015-02-01');
insert table1 (username,`date`) values ('john','2015-03-01');
insert table1 (username,`date`) values ('john','2015-03-01');
insert table1 (username,`date`) values ('kim','2015-01-01');
insert table1 (username,`date`) values ('kim','2015-02-01');

अद्यतन विवरण , डुप्स . सेट करें और पहले पीके आईडी के आधार पर दिन के लिए

update table1 t1
join 
(   select username,`date`,count(*) as theCount,min(id) as minForGroup
    from table1
    group by username,`date`
    having theCount>1
) inr
on inr.username=t1.username and inr.`date`=t1.`date`
set dupeFlag=1,
firstFlag=if(id=inr.minForGroup,2,666);


select * from table1;
+----+----------+------------+----------+-----------+
| id | username | date       | dupeFlag | firstFlag |
+----+----------+------------+----------+-----------+
|  1 | john     | 2015-01-01 |        1 |         2 |
|  2 | kim      | 2015-01-01 |        1 |         2 |
|  3 | john     | 2015-01-01 |        1 |       666 |
|  4 | john     | 2015-02-01 |     NULL |      NULL |
|  5 | john     | 2015-03-01 |        1 |         2 |
|  6 | john     | 2015-03-01 |        1 |       666 |
|  7 | kim      | 2015-01-01 |        1 |       666 |
|  8 | kim      | 2015-02-01 |     NULL |      NULL |
+----+----------+------------+----------+-----------+
8 rows in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ट्विटर और फेसबुक को हैशटैग की तरह लागू करना

  2. mysql एक ही तालिका में दो पंक्तियों के बीच अंतर कैसे खोजें और बेजोड़ रिकॉर्ड्स को सूचीबद्ध करें? mysql एक तालिका में बेजोड़ पंक्तियों को ढूंढ रहा है

  3. MySQL में स्ट्रिंग संयोजन

  4. MySQL बूलियन के रूप में कास्ट करें

  5. क्या MySQL में तुलना करते समय इसे varchar या varchar से int में बदलना तेज़ है?