php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.12.2011, 19:10  
Neuer Benutzer
 
Registriert seit: 21.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Sin84 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] MySQL IF THEN Abfrage

Hallo,

ich habe keine Ahnung von MySQL. Vielleicht hilft mir jemand.

Ich erläutere kurz:

In der Mysql Datenbank befinden sich folgende Angaben:

Kunde:1 Artikel:17 Downloads:5
Kunde:2 Artikel:17 Downloads:3
Kunde:3 Artikel:09 Downloads:3
Kunde:4 Artikel:17 Downloads:0

Ich möchte, dass der Download-Counter nur um einen hochzählt, wenn Downloads > 0 sind. Also statt Kunde1 Downloads:5 soll der Counter nicht die 5 downloads anzeigen, sondern nur einen.

Nach dem Motto:

Wenn Counter > 0 dann Counter = 1 , Summiere Counter von Artikel 17

Um alle Downloads von Artikel 17 zu summieren, sieht meine funktionierende MySQL Abfrage folgendermaßen aus:

Code:
SELECT sum(counter) as total FROM downloads WHERE artikel = '17'
Ich habe diese etwas umgeschrieben, um beschriebenes zu erreichen. Bekomme zwar keine Fehlermeldung, aber es funktioniert auch nicht.

Code:
SELECT sum(counter) = IF (`counter` > 0,`counter`=1  ,`counter` ) as total FROM downloads WHERE artikel = '17'
Was mache ich falsch?


Gruß
Alex
Sin84 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.12.2011, 19:46  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.164
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Die Syntax ist falsch. Schau dir mal CASE an.
__________________
Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)
dennis81 ist offline   Mit Zitat antworten
Alt 23.12.2011, 21:00  
Neuer Benutzer
 
Registriert seit: 21.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Sin84 befindet sich auf einem aufstrebenden Ast
Standard

Hast Du vielleicht ein Beispiel in Bezug auf meinen Code? Wie und wo ich Case unterbringen muss?


Gruß
Alex
Sin84 ist offline   Mit Zitat antworten
Alt 23.12.2011, 21:12  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.164
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Okay, jetzt habe ich auch mal gelesen worum es geht...

Reicht nicht ein

Code:
SELECT count(id) FROM downloads WHERE artikel = 17
??
__________________
Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)
dennis81 ist offline   Mit Zitat antworten
Alt 23.12.2011, 21:37  
Neuer Benutzer
 
Registriert seit: 21.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Sin84 befindet sich auf einem aufstrebenden Ast
Standard

Nein. Ich glaube, du hast nicht ganz verstanden was ich meine.

Der Counter zählt die Downloads nach Artikel-Nr.

Wenn Artikel 17 Zehn mal runtergeladen wurde, (Kunde 1 hat ihn sechs mal runtergeladen und Kunde 2 vier mal) zeigt der Counter als Summe zu Artikel 17 Zehn Downloads an.
Das kann ich mit Hilfe von
Code:
SELECT sum(counter) as total FROM downloads WHERE artikel = '17'
anzeigen lassen.

Aber ich möchte nicht, dass der Counter 10 Downloads anzeigt. Darum hab ich mir gedacht, ich mach es nach dem Schema:

Wenn Counter > 0 dann Counter = 1 , Summiere Counter von Artikel 17

Damit der Counter jeden Download des Kunden X zu Artikel 17 nur als einen Download zählt, selbst wenn Kunde1 den Artikel sechs mal runterladen sollte und Kunde2 vier mal. Dann soll der Counter 2 Downloads anzeigen und nicht 10.

Nochmal um zu präzisieren. sum(counter) zählt in meinem Code alle Downloads zusammen, die Artikel 17 betreffen. Ich benötige eigentlich nur die richtige Syntax, damit passiert:

Kunde1 zu Artikel17 - Downloads: XX (if counter > 0 counter = 1)
Kunde2 zu Artikel17 - Downloads: XX (if counter > 0 counter = 1)

sum(counter) = 2 Downloads

Ich hoffe das ist verständlich.

Wie krieg ich das hin?


Gruß
Alex

Geändert von Sin84 (23.12.2011 um 22:20 Uhr). Grund: Ergänzung
Sin84 ist offline   Mit Zitat antworten
Alt 23.12.2011, 22:34  
Neuer Benutzer
 
Registriert seit: 07.04.2011
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
ajmeht befindet sich auf einem aufstrebenden Ast
Standard

Hast du schonmal count(ID) / count(DISTINCT KUNDEN_ID) probiert?

Für das Vorhaben mit dem CASE bräuchtest du Window Functions, das kann MySQL afaik eh nicht.
ajmeht ist offline   Mit Zitat antworten
Alt 23.12.2011, 23:02  
Neuer Benutzer
 
Registriert seit: 21.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Sin84 befindet sich auf einem aufstrebenden Ast
Standard

Scheint mir ein guter Ansatz zu sein. Kannst du mir zeigen wie das in Bezug auf meinen Code aussehen könnte. Mit "keine Ahnung von MySQL" meinte ich eigentlich "kein Plan von allen Programmiersprachen".


Gruß
Alex
Sin84 ist offline   Mit Zitat antworten
Alt 24.12.2011, 12:31  
Neuer Benutzer
 
Registriert seit: 21.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Sin84 befindet sich auf einem aufstrebenden Ast
Standard

Hab es jetzt hinbekommen. Aber mit ganz anderen Einträgen aus der Datenbank und ohne IF Abfrage. Darum würde es wohl keinem nützen, meine Vorgehensweise zu erläutern.


Gruß
Alex
Sin84 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mysql abfrage in mysql abfrage tsunder Datenbanken 8 06.09.2011 16:42
[Erledigt] MySQL Abfrage über Funktion (2 Datenbanken)? markiloy PHP Einsteiger 4 31.08.2011 23:30
[Erledigt] MySQL Abfrage mit mehreren Keywörtern inox PHP Einsteiger 16 15.02.2011 18:18
MYSQL Abfrage von 4 Datenbanken da_mike PHP Einsteiger 47 08.02.2011 15:02
MySQL Abfrage über 5 Tabellen evtl. IF ghost120 Datenbanken 11 13.04.2009 20:00
MySQL Abfrage nach mehreen Spalten und mit verschiedenen Bedingungen ketchup PHP Tipps 2009 1 19.03.2009 23:21
MySQL - Fehler in einfacher Abfrage oden Datenbanken 11 03.01.2009 20:03
MySQL Abfrage von Ver. 5 für Ver 3. des MySQL Servers FireFIghter Datenbanken 3 02.02.2007 17:18
MySQL Abfrage macht Seite langsam Datenbanken 11 19.10.2006 19:38
MySQL - Abfrage: Unterschiedliche Ergebnisse aus PHP/manuell horstenpeter Datenbanken 3 16.07.2006 13:22
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql if then, mysql if, mysql if beispiel, mysql if then example, mysql if example, php if then, if then in php, php if then and, mysql if-then, mysql if then where, php mysql if then, if then datenbank, mysql if 2011, sql if then mysql, mysql if nur bei, mysql if then mit null, mysql \counter 1\, mysql abfrage if wenn dann, mysql query zusammenzählen sum sehr langsam, mysql select counter if

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:21 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum