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

MySQL Изберете по най-ново времеви печат

SELECT * FROM my_table -- standard stuff
   WHERE user_2 = 22 -- predicate
   ORDER BY timestamp DESC -- this means highest number (most recent) first
   LIMIT 1; -- just want the first row

Редактиране:

Между другото, в случай, че сте любопитни защо оригиналната ви заявка не работи, нека да разбием на части:

  • изберете някои неща от my_table ...
  • където user_2 =22
  • и timestamp =(някаква стойност, нека я оставим настрана засега)
  • лимит 1

Сега да се върнем към това timestamp стойност, идва от вашата подзаявка:

SELECT MAX( timestamp ) FROM my_table

Имайте предвид, че тази подзаявка не ограничава никакви редове въз основа на user_2 -- пита какво е максималното времеви печат в цялата таблица . Това максимално клеймо за време е първото във вашата таблица по-горе:(user_1 =23, user_2 =25, timestamp =2012-08-10 22:00:00).

И така, нека го включим обратно към заявката от най-високо ниво:

  • изберете някои неща от my_table ...
  • където потребител_2 =22
  • и времева марка =2012-08-10 22:00:00
  • лимит 1

... и виждате, че няма такъв ред.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MAX функция в where клауза mysql

  2. SEC_TO_TIME() Примери – MySQL

  3. постоянен начин за правене на mysqli->set_charset()?

  4. mysql_connect():Не може да се осъществи връзка, защото целевата машина активно я отказа

  5. django auth Потребителско съкращаване на имейл поле