Gegeben
+----+----------+
| id | lastname |
+----+----------+
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
+----+----------+
3 rows in set (0.00 sec)
Ihre erste Abfrage ist eine Anweisung an mysql über den gesamten Satz zu zählen
MariaDB [sandbox]> select id = count(*) as id, lastname
-> from users;
+------+----------+
| id | lastname |
+------+----------+
| 0 | aaa |
+------+----------+
1 row in set (0.00 sec)
Offensichtlich dies nicht die letzte ID oder die richtige Anzahl zurückgibt. Die korrekte Zählung würde von diesem
select id, lastname , count(*)
from users;
+------+----------+----------+
| id | lastname | count(*) |
+------+----------+----------+
| 1 | aaa | 3 |
+------+----------+----------+
1 row in set (0.00 sec)
zurückgegeben werden Und die ID und Nachname sind unbestimmt.
Ihre zweite Abfrage gibt ein kartesisches Produkt
select id = count2, lastname, count2
-> from users, (select count(*) as count2 from users) seat2
-> ;
+-------------+----------+--------+
| id = count2 | lastname | count2 |
+-------------+----------+--------+
| 0 | aaa | 3 |
| 0 | bbb | 3 |
| 1 | ccc | 3 |
+-------------+----------+--------+
3 rows in set (0.00 sec)
die wiederum nicht die ID nicht identifizieren, die die Zählung übereinstimmt ..
die ID eine Nummer und Schritte in irgendeiner Art und Weise ist eine Art und Weise Unter der Annahme, das tut findet die letzte ID ist
MariaDB [sandbox]> select id,lastname
-> from users
-> where id = (select count(*) from users);
+----+----------+
| id | lastname |
+----+----------+
| 3 | ccc |
+----+----------+
1 row in set (0.00 sec)
Aber das ist gefährlich - wenn id auto_increment dann die Anzahl der Zeilen möglicherweise nicht überein, die id wegen der Art und Weise au ist to_increment wird behandelt (es kann überschrieben werden, fügt das Update für den doppelten Schlüssel usw. ein)) Ein sicherer Weg ist, um
MariaDB [sandbox]> select id,lastname
-> from users
-> where id = (select max(id) from users);
+----+----------+
| id | lastname |
+----+----------+
| 3 | ccc |
+----+----------+
1 row in set (0.00 sec)
Was möchten Sie erreichen? – user1506104
aus dem Grund, warum es Ihnen nur eine Zeile gab, bitte hier überprüfen: http://www.mysqltutorial.org/mysql-count – user1506104
Sie sollten die Anzahl mit der Gruppe nach Abschnitt im Tutorial –