phpbar.de logo

Mailinglisten-Archive

[dbs] MySQL %-Ausgabe

[dbs] MySQL %-Ausgabe

Hans Egg hans.egg at swissonline.ch
Mon Sep 29 09:36:58 CEST 2008


Hallo Thomas

Handle Thomas (LZD) schrieb

> ich möchte eine MySQL-Abfrage erstellen, die mir das Profil eines
> Benutzers auswertet. 
> 
> Ich habe ca. 30 Spalten und möchte eine Darstellung in der
> Form XX-% eines Benutzerprofils ausgefüllt.
> 
> Dazu nehme ich die Gesamtzahl der Spalten, kein Problem.
> 
> Wie jedoch kann ich dann alle Spalten auswählen, die entweder
> 0 oder NULL oder 0000-00-00 sind?

Du kannst die Anzahl der Spalten ermitteln, in denen kein Nullwert steht,
indem du für jede dieser Spalte eine 1 addierst. Im einfachsten Fall mit
IF(spalte, 0, 1). Du kannst auch individuelle Werte ermitteln, z. B.
IF(spalte > x, 0, 1).

SELECT ROUND( 100 *
  (
    SELECT IF(spalte1, 0, 1) + 
    SELECT IF(spalte2, 0, 1) +
    ...
    SELECT IF(spalte32, 0, 1)
  ) / 32
)

Möglicherweise ist es schneller, wenn du mit SELECT * alle Werte holst und
die entsprechende Auswertung mit PHP machst.

Gruß, Hans



php::bar PHP Wiki   -   Listenarchive