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

SQL:Как да поддържам ред на редовете с DISTINCT?

distinct ключовата дума прави това, което трябва да прави, връща по един ред всеки с дадена стойност на колоната. Distinct не ви позволява да посочите кое такъв ред ще бъде върнат и от първоначалната заявка става ясно, че такова подреждане е разрешено (има ред с идентификатор 443, който следва ред с идентификатор 429).

За да поемете контрола върху това кои редове ще бъдат върнати, трябва да преформулирате заявката. Типично решение, което ще взема, е да използвам group by , като изберете колоната на групата и желания ред от всяка група, нещо с ефект на

SELECT message.id, MAX(message.created_at) FROM message GROUP BY message.id;

Ако трябва да направя повече, ще използвам този вид заявка като подселекция в по-голяма заявка, вероятно ще се присъединя към полето id, за да получа повече полета от предпочитания ред, или ще подредя заявката по определен начин.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изтеглите подправена парола от базата данни и потребителя за удостоверяване?

  2. Използване на съветници за архивиране на база данни за автоматизиране на задачите за поддръжка

  3. Изтрийте всички редове, които нямат идентификатор в друга таблица

  4. MySQL - Вземете брояч за всяка дублирана стойност

  5. Променете формата на датата (в DB или изход) на дд/мм/гггг - PHP MySQL