2015-05-04 5 views
1

Может кто-нибудь мне помочь? Я новичок на PHP, поэтому, пожалуйста, поймите. Вот мой код.Показать последние данные в SQL

$query="SELECT MAX(mid) as mid, ticketno FROM tbl_message GROUP BY ticketno"; 
$result=mysql_query($query); 
while($row = mysql_fetch_array($result)){ 
echo $row['mid']; 
echo $row['ticketno']; 
} 

DISPLAYS ЭТА

- mid ticketno 
- 2-------21510 
- 1-------24693 
- 4-------24693 

, что я хочу

- mid ticketno 
- 2-------21510 
- 4-------24693 

Моя база данных:

enter image description here

+1

Пожалуйста, [прекратить использование '' mysql_ * функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://jayblanchard.net/demystifying_php_pdo.html). –

+1

Ваш запрос, с GROUP BY, действительно возвращает билетно 24693 дважды?!? – jarlh

+0

@ Я благодарю вас за сообщение. Я буду в своем следующем проекте. Я не хочу снова писать код – nej

ответ

0

Хорошо так в основном я просто изменил VARCHAR к Int (тип TICKETNO) затем возвращает самую последнюю ticketno.

Я использовал этот запрос

$query="SELECT MAX(mid) as mid, ticketno FROM tbl_message GROUP BY ticketno"; 

я использовал MAX(), чтобы вернуть только последний билет не и GROUP BY ticketno так, что он будет возвращать другой уникальный билет нет.

Я думаю, что varchar читает пробелы.

5

Использование ORDER BY. Попробуйте с -

$query="SELECT mid, ticketno FROM tbl_message GROUP BY ticketno ORDER BY mid DESC"; 
+1

Я не знаю, почему я не работаю на меня. он возвращает 3-24693 || 2-21510 || 1-24693 – nej

1
SELECT t.* 
FROM tbl_message t 
WHERE NOT EXISTS (SELECT 'a' 
        FROM tbl_message t2 
        WHERE t2.ticketno = t.ticketno 
        AND t2.mid > t.mid 
       ) 
Смежные вопросы