SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.03.2011, 16:04:09
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
Leere Felder einer Tabelle zählen

Hallo zusammen,
ich habe mal wieder eine Frage.
Folgende zwei (MS)SQL-Anweisungen habe ich vor mir:
Code:
SELECT COUNT(i1.id) + 
(SELECT count(i2.id) FROM info AS i2 WHERE i2.ap2 != '' AND i2.ap2 IS NOT NULL) + 
(SELECT count(i3.id) FROM info AS i3 WHERE i3.ap3 != '' AND i3.ap3 IS NOT NULL) AS alle 
FROM info AS i1
WHERE (i1.ap1 != '' AND i1.ap1 IS NOT NULL)
Code:
SELECT SUM(i1+i2+i3) AS alle FROM 
(SELECT  
 CASE WHEN i.ap1 = '' OR i.ap1 IS NULL THEN 0 ELSE 1 END i1
,CASE WHEN i.ap2 = '' OR i.ap2 IS NULL THEN 0 ELSE 1 END i2
,CASE WHEN i.ap3 = '' OR i.ap3 IS NULL THEN 0 ELSE 1 END i3
FROM info AS i) y
Machen im Prinzip das gleiche, sie Zählen die leeren Felder in einer Tabelle.
Jetzt bin ich mir nicht schlüssig was "schöner" ist. Ich tendiere zur zweiten Lösung, da diese weniger Abfragen durch die Tabelle jagt. Was sagt ihr, bzw. kann man das noch besser lösen?
__________________
In der Ruhe liegt die Kraft!
Mit Zitat antworten
  #2  
Alt 24.03.2011, 11:36:54
thomas_w thomas_w ist offline
Junior Member
 
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
AW: Leere Felder einer Tabelle zählen

Mir erscheint die zweite Variante auch eleganter, aber ob sie von MySQL besser/performanter abgearbeitet wird, hängt von anderen Kriterien ab.

Vergleiche mal die EXPLAIN-Ausgaben von beiden Queries:
Code:
mysql>EXPLAIN SELECT ...
Wichtig wäre es auch zu verhindern, das Empty String ('') Werte überhaupt in die Tabelle geschrieben werden.

Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
Mit Zitat antworten
  #3  
Alt 24.03.2011, 12:47:21
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
AW: Leere Felder einer Tabelle zählen

Nur zur Anmerkung auch wenn das ein MySQL Unterforum ist bezog sich meine Frage auf MSSQL.
Bevor du dich wunderst: Ich habe dennoch hier hinein geschrieben, da ich hier sehr gute Erfahrungen mit den Mitgliedern sammeln konnte. Außerdem unterscheiden sich die zwei Sprachen für diese Frage nicht.

Zu meinem "Problem":
Deine Idee war recht gut. Habe beide Statements analysiert und das zweite benötigt in etwa nur ein drittel der Kosten des ersten. Eigentlich auch logisch, da nur ein statt drei mal aus der Tabelle selektiert wird.
War mir allerdings nicht sicher ob man das noch effektiver schreiben kann.

Gruß zurück!
__________________
In der Ruhe liegt die Kraft!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Tabelle sinnvoll normalisieren b2907377 MySQLi/PDO/(MySQL) 9 02.11.2010 09:06:49
Zeilen zählen und in zweiter Tabelle addieren Doc_McSky MySQLi/PDO/(MySQL) 1 07.06.2010 12:18:39
DOM / CSS leere Felder -> andere Farbe Goggle HTML, CSS und JavaScript Help! 1 06.08.2008 13:48:52
Abfrage über leere Tabelle bleibt leer... rocco82 MySQLi/PDO/(MySQL) 1 10.03.2008 13:37:29
Daten aus Tabelle zusammen Zählen und sortieren? swishy MySQLi/PDO/(MySQL) 0 12.09.2006 20:25:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:14:49 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt