COALESCE() के साथ ऑटो-इन्क्रीमेंट जैसा व्यवहार
किसी नाम के लिए अधिकतम ID + 1 के साथ नया रिकॉर्ड डालने के लिए:
INSERT INTO yourTableName(col1, col2) SELECT 1 + COALESCE((SELECT MAX(col1) FROM yourTableName WHERE col2 = 'value'), 0), 'value';
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE InsertMaxPlus1Demo (Id INT, Name VARCHAR(20));
mysql> INSERT INTO InsertMaxPlus1Demo(Id, Name)
-> VALUES(1, 'John'),(1, 'Mike'),(2, 'John'),(1, 'Larry'),(3, 'John'),(2, 'David');
वर्तमान डेटा
+------+-------+ | Id | Name | +------+-------+ | 1 | John | | 1 | Mike | | 2 | John | | 1 | Larry | | 3 | John | | 2 | David | +------+-------+
'John' के लिए MAX(Id)+1 डालना
mysql> INSERT INTO InsertMaxPlus1Demo (Id, Name)
-> SELECT 1 + COALESCE((SELECT MAX(Id) FROM InsertMaxPlus1Demo WHERE Name = 'John'), 0), 'John';
John का वर्तमान MAX(Id) = 3, नया Id = 4।
परिणाम
+------+-------+ | Id | Name | +------+-------+ | 1 | John | | 1 | Mike | | 2 | John | | 1 | Larry | | 3 | John | | 2 | David | | 4 | John | +------+-------+
COALESCE NULL को 0 में बदलता है (यदि कोई रिकॉर्ड नहीं मिलता)।