dedlfix: MySQL: Datensätze + totale Anzahl in einem Statement

Beitrag lesen

echo $begrüßung;

Jetzt würde ich gerne statt der Meldung, direkt einen 404-Status
schicken (mod_perl), allerdings _nicht_ wenn die Tabelle noch
leer ist, also noch keine News vorhanden.

Keine falsche Scheu! Ein SELECT COUNT(*) geht unter MySQL ziemlich schnell. Diese Zahl wird aus den Metadaten der Tabelle ermittelt und nicht etwa durch Durchzählen.

Wenn du das partout nicht in zwei Abfragen lösen möchtest, fallen mir nur zwei Arten der Verknüpfung ein:

SELECT NULL AS id, NULL AS title, NULL AS `text`, COUNT(*) AS `count` FROM tbnews  
UNION  
SELECT id, title, `text`, NULL FROM tbnews WHERE id = 12;

Der erste Datensatz des Ergebnisses enthält außer null-Werten nur die Anzahl, der zweite ist nicht vorhanden oder enthält die News.

SELECT COUNT(c.*) AS `count`, n.id, n.title, n.`text` FROM tbnews c  
LEFT JOIN tbnews n ON n.id = 12

Diese zweite Lösung funktioniert aber nicht. Es wird mir ein Syntax-Fehler in Nähe des * vorgeworfen, war wohl doch zu abwegig.

echo "$verabschiedung $name";