dk zaman değeri ile select alan bilgisi

3 Cevap php

Adamlar hızlı soru Hey, ben doğru olanı yaptığımı düşündüm ama yanlış sonuç alıyorum. Ben sadece dk süre ile giriş id bulmaya çalışıyorum, ama ben bu girdiyi almıyorum.

$qryuserscount1="SELECT id,min(entry_time) FROM scrusersonline WHERE topic_id='$topic_id'";
$userscount1=mysql_query($qryuserscount1);
while ($row2 = mysql_fetch_assoc($userscount1)) {
    echo $onlineuser= $row2['id'];
}

That is my query, and it does not work. This however does work which does not make sense to me SELECT id FROM scrusersonline WHERE topic_id='$topic_id' ORDER by entry_time LIMIT 1, can anyone quickly point out what I am doing wrong?

3 Cevap

SELECT id,min(entry_time) FROM scrusersonline WHERE topic_id='$topic_id'

Hiçbir grup tarafından fıkra min(entry_time) seçilmiş olabilir hangi olmadığından, her satır eşleştirmek için topic_id id ve entry_time dönecektir . SELECT deyimi yalnızca columns iade edilmelidir ne tanımlar, bu restrict satırlara göre bu seçim herhangi etmez - o ne {[(7)] } fıkra içindir.

SELECT id FROM scrusersonline WHERE topic_id='$topic_id' ORDER BY entry_time LIMIT 1

(SELECT id) only the first için (LIMIT 1) eşleşen topic_id ({[(5)] id döndürür }) entry_time (ki minimum) tarafından sipariş edildiğinde.

Yani, evet, SELECT id FROM scrusersonline WHERE topic_id='$topic_id' ORDER BY entry_time LIMIT 1 aradığınız budur.

Ben dk işlevi fıkra ile bir grup ile kullanılacak olduğunu düşünüyorum. Ancak, yayınlamak, ikinci isteği (eğer imo o berrak hale getiren bir ASC veya DESC ekleyebilirsiniz) entry_time tarafından sipariş, topic_id ne istediğiniz tam id listesini seçer ve sonra, sadece ilk döndürür.

Bunun nesi yanlış? :-)

SELECT  id, MIN(entry_time)
FROM    scrusersonline
WHERE   topic_id='$topic_id'

SQL standartlarına göre, bu sorgu geçersiz.

Net değil çünkü GROUP BY o, hangi id grubundan iade edilmelidir sürece SELECT listesinde id kullanamazsınız.

MySQL, ancak, (hayır GROUP BY hüküm bulunmaması halinde ise bütün recordset arasında) grubundan herhangi rastgele id return tür sorguları sağlar.

Bu davranış, basitleştirmek için tasarlanmıştır PRIMARY KEY ile birleşir GROUP BY,

SELECT  mytable.*, COUNT(*)
FROM    mytable
JOIN    othertable
ON      othertable.col1 = mytable.id
GROUP BY
        mytable.id

Bu durumda, tüm kayıtları mytable grup içinde aynı olması garanti edilir ve bir iade edilecektir farketmez.

Sorgunuz size entry_time minimal değer tutan kayıt döndürmez. Bunun yerine, size entry_time minimal değeri ve ait garanti olmayan bir random id tatmin topic_id = $topic_id durumunu dönecektir aynı kayıt.