distinct
ключовата дума прави това, което трябва да прави, връща по един ред всеки с дадена стойност на колоната. Distinct не ви позволява да посочите кое такъв ред ще бъде върнат и от първоначалната заявка става ясно, че такова подреждане е разрешено (има ред с идентификатор 443, който следва ред с идентификатор 429).
За да поемете контрола върху това кои редове ще бъдат върнати, трябва да преформулирате заявката. Типично решение, което ще взема, е да използвам group by
, като изберете колоната на групата и желания ред от всяка група, нещо с ефект на
SELECT message.id, MAX(message.created_at) FROM message GROUP BY message.id;
Ако трябва да направя повече, ще използвам този вид заявка като подселекция в по-голяма заявка, вероятно ще се присъединя към полето id, за да получа повече полета от предпочитания ред, или ще подредя заявката по определен начин.