Nasıl son MySQL değer verilerini almak için?

2 Cevap php

Ben bunu yapmak istiyorum:

Puan ilk 10 değerlerini kontrol edin.

İşte benim bir durumdur:

  • Bulunan az 10 kayıtları (satırlar) varsa, örneğin ikramiye verecek

  • Noktaları (yüzlerce kayıt / satırlar arasında) ilk on ise, bonus veriyoruz.

Peki, ne yapmam (yanlış yöntemi):

SELECT points FROM `scores` WHERE id = '1' ORDER BY score DESC LIMIT 9 , 1

I daha sonra 9 (en az 10) veri / kayıt varsa sadece çalışacaktır.

Başka bir yolu var mı?

Ben (çok iyi değil ama) bu kullanarak düşünüyorum:

 SELECT points FROM `scores` WHERE id = '1' ORDER BY score DESC LIMIT 0 , 10

Sonra mysql_fetch_array verilerin son değeri olsun. Böylece, nasıl mysql_fetch_array verilerin son değeri alabilirim?

2 Cevap

Önceki sorgu ne istediğinizi yakın:

SELECT points FROM (
  SELECT points, score 
  FROM scores 
  WHERE id = '1' 
  ORDER BY score DESC 
  LIMIT 10
) AS top_ten 
ORDER BY score ASC 
LIMIT 1

Eğer mysql_fetch_array son değeri elde sopa ile isterseniz mysql_data_seek yararlanabilirler.

Böyle bir şey:

<?php
// ... $result is the result set from your query

$result_count = mysql_num_rows($result);
if ($result_count > 0)
{
    mysql_data_seek($result, $result_count - 1);
}

$row = mysql_fetch_assoc($result);
?>

Bu kullanmayı deneyin: skor LİMİT 1 BY

SELECT points FROM (SELECT points FROM scores NEREDE puan DESC LIMIT 10 BY id = '1 'ORDER) SİPARİŞ