English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kann ich UPDATE-Abfragen in MySQL mit LIMIT verwenden?

Ja, es ist möglich, in MySQL UPDATE-Abfragen mit LIMIT zu verwenden. Lassen Sie uns sehen, wie das geht.

Für unser Beispiel werden wir zunächst einen Tisch erstellen. Der CREATE-Befehl wird verwendet, um Tische zu erstellen.

mysql>CREATE table tblUpdateLimit
-> (
-> id int,
-> name varchar(100)
-> );

Die Einträge wurden mit Hilfe des INSERT-Befehls eingefügt.

mysql> INSERT into tblUpdateLimit values(1,'John');
mysql> INSERT into tblUpdateLimit values(2,'Carol');
mysql> INSERT into tblUpdateLimit values(3,'Smith');
mysql> INSERT into tblUpdateLimit values(4,'Kayle');
mysql> INSERT into tblUpdateLimit values(5,'David');
mysql> INSERT into tblUpdateLimit values(6,'Jason');
mysql> INSERT into tblUpdateLimit values(7,'Larry');
mysql> INSERT into tblUpdateLimit values(8,'Serhat');
mysql> INSERT into tblUpdateLimit values(9,'Winny');

Um die obige Tabelle anzuzeigen, ist dies die Abfrage.

mysql> SELECT *from tblUpdateLimit;

Hier ist die Ausgabe.

+------+--------+
| id        | name        |
+------+--------+
| 1    | John      |
| 2    | Carol     |
| 3    | Smith     |
| 4    | Kayle     |
| 5    | David     |
| 6    | Jason     |
| 7    | Larry     |
| 8    | Serhat    |
| 9    | Winny     |
+------+--------+
9 rows in set (0.00 sec)

Lassen Sie uns nun die Syntax der UPDATE-Abfrage mit Beschränkung betrachten.

UPDATE yourTableName SET column_name='some value’'
WHERE column_name1 IN (
SELECT column_name1 FROM (
select column_name1 from yourTableName order by column_name1 asc limit integerValue,integerValue)
anyAliasName );

Jetzt führen wir die Abfrage durch, um unser Ziel zu erreichen, und verwenden sie, um den Namen 'Adam' zu setzen (begrenzt auf7).

mysql> UPDATE tblUpdateLimit SET name = 'Adam'
-> WHERE id IN (
SELECT id FROM (select id from tblUpdateLimit order by id asc limit 0,7);
Zeilen gematcht: 7 Geändert: 7 Warnungen: 0

Überprüfen Sie, ob die Tabelle aktualisiert wurde.

mysql> SELECT *from tblUpdateLimit;

Dies ist die Ausgabe.

+------+--------+
| id        | name        |
+------+--------+
| 1    | Adam      |
| 2    | Adam      | 
| 3    | Adam      |
| 4    | Adam      |
| 5    | Adam      |
| 6    | Adam      |
| 7    | Adam      |
| 8    | Serhat    |
| 9    | Winny     |
+------+--------+
9 rows in set (0.00 sec)