현재 데이터베이스에서 일부 데이터를 선택하기 위해 PHP/MySQL을 사용하고 있습니다. 나의 현재 SELECT 문은 다음과 같습니다MySQL Select Statement - GROUP BY/UNICY
하나의 "스레드 ID가"열이 선택되도록하여, 내가는 GROUP BY를 사용하고, 동일한 "스레드 ID를"이 일부 열이 있습니다mysql_query("SELECT * FROM tblpm WHERE receiver_id ='$usrID' GROUP BY
thread_id ORDER BY unique_id DESC") or die(mysql_error());
. 그룹화와 함께 모든 것이 잘 작동하지만 가장 최근의 것이 아니라 첫 번째 '스레드 ID'열을 선택합니다. 예를 들어
, 모두 같은 thread_id 4 열이 있습니다
thread_id unique_id
222 1
222 2
222 3
222 4
나는 GROUP BY를 수행 할 때, 나는 고유 ID 4 (가장 최근에 생성 된 열)와 함께 하나를 검색하는 데 싶습니다 고유 ID 1 (생성 된 가장 오래된 열)이 아닙니다.
내 SELECT 문으로이를 수행하는 방법에 대한 아이디어가 있습니까? 감사.
귀하의 쿼리가 SQL 주입 취약점을 가질 수있다(). 회신에 대한 –
감사 : $ 데이터 =는 mysql_query (" tblpm.thread_id, tblpm.receiver_id, tblpm.title, MAX (tblpm.content), tblpm.date_sent, tblpm을 선택합니다 : 여기 내가 현재 사용하고 무엇인가 .sender_id UNIQUE_ID로서 tblpm.read_pref, MAX (tblpm.id) FIRST_NAME AS tblusers.usrFirst, tblpm LEFT OUTER FROM LAST_NAME AS tblusers.usrLast는 tblpm.sender_id = tblusers.usrID WHERE receiver_id = ON에 tblUsers 가입 '$ usrID' GROUP BY thread_id ORDER BY unique_id DESC ") 또는 die (mysql_error()); –
그러나 가장 최근의 "content"열을 표시하려고하면 가장 최근의 "content"필드가 표시됩니다. 보시다시피, 저는 MAX (tblpm.content)를 호출하려고하는데, 그 일을 끝내지 않는 것 같습니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까? –