हाँ, MySQL में UPDATE के साथ LIMIT उपयोग कर सकते हैं, लेकिन सीधे नहीं - सबक्वेरी की आवश्यकता होती है।
सीधा LIMIT (काम नहीं करता)
-- यह सिंटैक्स त्रुटि देगा
UPDATE tblUpdateLimit SET name = 'Adam' LIMIT 7;
काम करने वाला तरीका: सबक्वेरी के साथ
UPDATE tblUpdateLimit
SET name = 'Adam'
WHERE id IN (
SELECT id FROM (
SELECT id FROM tblUpdateLimit
ORDER BY id ASC
LIMIT 0, 7
) AS sub
);
पूर्ण उदाहरण
टेबल और डेटा:
CREATE TABLE tblUpdateLimit (id INT, name VARCHAR(100));
INSERT INTO tblUpdateLimit VALUES
(1,'John'), (2,'Carol'), (3,'Smith'), (4,'Kayle'),
(5,'David'), (6,'Jason'), (7,'Larry'), (8,'Serhat'), (9,'Winny');
अपडेट क्वेरी (पहले 7 रिकॉर्ड):
UPDATE tblUpdateLimit
SET name = 'Adam'
WHERE id IN (
SELECT id FROM (
SELECT id FROM tblUpdateLimit
ORDER BY id ASC
LIMIT 7
) AS sub
);
Query OK, 7 rows affected
परिणाम:
+------+--------+
| id | name |
+------+--------+
| 1 | Adam |
| 2 | Adam |
| 3 | Adam |
| 4 | Adam |
| 5 | Adam |
| 6 | Adam |
| 7 | Adam |
| 8 | Serhat |
| 9 | Winny |
+------+--------+
महत्वपूर्ण बिंदु
- सबक्वेरी में
ORDER BYअनिवार्य है ताकि परिणाम निश्चित हो। - डेराइव्ड टेबल (सबक्वेरी को एलियास देना) MySQL की आवश्यकता है।
LIMIT offset, countयाLIMIT count OFFSET offsetदोनों काम करते हैं।
MySQL 8.0+ में CTE विकल्प
WITH to_update AS (
SELECT id FROM tblUpdateLimit ORDER BY id LIMIT 7
)
UPDATE tblUpdateLimit
SET name = 'Adam'
WHERE id IN (SELECT id FROM to_update);