Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изберете ред с максимална стойност в таблицата на mysql

Трябва да прочетете group by клауза.

MySQL е много по-разрешителен, отколкото би трябвало, внасяйки объркване в процеса. По принцип всяка колона без агрегат трябва да бъде включена в group by клауза. Но синтактичната захар на MySQL позволява да се „забравят“ колоните. Когато го направите, MySQL изхвърля произволна стойност от набора, по който се групира. Във вашия случай първият ред в комплекта е bob , така че връща това.

Първото ви изявление (използвайки max() без group by ) е просто неправилно.

Ако искате един от най-възрастните потребители, order by age desc limit 1 е правилният начин да продължите.

Ако искате всички най-стари потребители, имате нужда от подселекция:

SELECT p.* FROM people p WHERE p.age = (select max(subp.age) from people subp);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намиране/търсене на липсващи стойности в MySQL

  2. променете двигателя по подразбиране на mysql на innodb

  3. C++ / mysql конектор - недефинирана препратка към get_driver_instance - вече опитах лесните неща

  4. Как мога да задам двигателя за съхранение по подразбиране, използван от MySQL?

  5. PHP и MySQL:Подредете по най-новата дата и ограничение 10