Von SQL Abfrage nur bestimmt zählen

M3Y3R

Well-known member
ID: 336361
L
8 Mai 2006
1.608
60
Hallo,

folgende Abfrage benutze ich zur Zeit:
"SELECT * FROM tabelle ORDER BY id DESC LIMIT 0, 30"

Nun ich würde gerne eine Abfrage erstellen, welche nur die Einträge zählt wo in diesem Beirech read='1' ist.
Wie lautet die Abfrage, wer könnte mir da nen Tipp geben bzw. helfen?

Dakne!


LG
Papenburger


PS: Where geht nicht, weil er dann 30 Datensätze sucht wo read='1' ist!
 
Wenn du PHP benutzt könntest du es damit auch machen...

PHP:
$read = 0;
$abfrage = mysql_query("SELECT * FROM tabelle ORDER BY id DESC LIMIT 0, 30");
while($datensatz = mysql_fetch_assoc($abfrage)) {
  if($datensatz['read']==1)
    $read++;
}

echo "Datensaetze mit 'read=1' gefunden: ".$read;
 
Jo, sehr effizient.

Code:
SELECT COUNT(*) FROM tbl WHERE CONDITION

und du bist am ziel vorbei... er will wissen wieviele, der letzten 30 einträge, bedingung x=y erfüllen. das bekommt man mit mysql nicht wirklich gut hin... von daher würde ichs auch so machen. (das heißt nicht es geht nicht in mysql, aber die lösungswege sind unschön, unflexibel oder ressourcendfressender als das)
 
und du bist am ziel vorbei... er will wissen wieviele, der letzten 30 einträge, bedingung x=y erfüllen. das bekommt man mit mysql nicht wirklich gut hin... von daher würde ichs auch so machen. (das heißt nicht es geht nicht in mysql, aber die lösungswege sind unschön, unflexibel oder ressourcendfressender als das)

Aso, dann hab ich den Post falsch verstanden ...

Sicher, dass das ressourcenfressender ist?

Code:
SELECT COUNT(*) WHERE id IN (SELECT id FROM tbl ORDER BY id DESC LIMIT 0,30) AND read = 1