PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Leere Columns füllen? (http://www.selfphp.de/forum/showthread.php?t=20824)

20one 02.02.2009 15:00:41

Leere Columns füllen?
 
Hallo!

Ich bin neu hier und bitte um etwas Nachsicht, da ich noch ziemlicher Anfänger bin was PHP und MYSQL betrifft. Danke übrigens für die ganzen gelösten Threads hier, aus denen ich schon einiges lernen konnte.

Zu meiner Bitte:
Ich habe eine Tabelle die wie folgt aufgebaut ist (id, anrede, name, emailadresse).
Insgesamt sind es ca. 2200 Einträge. Jetzt kommt es vor dass bei sehr vielen die Anrede fehlt. Hier möchte ich keinen leeren Eintrag ausgeben, sondern zB "---".

Mit welchem MYSQL Statement kann ich das lösen, das nur diese 1 Column, also anrede, die leer ist, mit --- gefüllt wird.

Vielen Dank!

schrubba 02.02.2009 15:45:41

AW: Leere Columns füllen?
 
Hi,

habs jetzt nicht getestet, sollte aber laufen:

Code:

SELECT
  CASE
    WHEN Anrede = NULL THEN '---'
    ELSE Anrede
  END
FROM Tabelle
WHERE ... (Deine Bedingung);

Gruß
schrubba

20one 02.02.2009 15:48:05

AW: Leere Columns füllen?
 
Danke Schrubba für deine Antwort.

Kannst mir bitte erklären was hier hin muss?

PHP-Code:

WHERE ... (Deine Bedingung); 

Danke!

schrubba 02.02.2009 15:54:11

AW: Leere Columns füllen?
 
Ui, ich bin jetzt davon ausgegangen, daß Du ein wenig fiter bist in SQL.. ;)

Du kannst die Abfrage auch ohne die Bedingung nutzen, ich halte es aber nicht für sinnvoll..

20one 02.02.2009 15:57:58

AW: Leere Columns füllen?
 
Bin ich eben noch nicht ... ;)

Hab´s jetzt wie von dir umgesetzt, jedoch werden die leeren Felder nicht befüllt.
Code:

SELECT
  CASE
    WHEN anrede = NULL THEN '---'
    ELSE anrede
  END
FROM users

Danke!

schrubba 02.02.2009 16:05:41

AW: Leere Columns füllen?
 
Aso, dann sind die Felder ja wirklich richtig leer.. hmm.. dann versuch folgendes, bei mir läufts..

Code:

SELECT
  CASE
    WHEN anrede = '' THEN '---'
    ELSE anrede
  END
FROM users


Und ein Tip aus eigener Erfahrung, ein "SELECT ... FROM ... WHERE ..." sollte sitzen, ist die minimalste Abfrage die man können sollte.

Gruß
schrubba

Crisps 02.02.2009 16:18:42

AW: Leere Columns füllen?
 
schrubba - Ich glaube, dass 20one bereits bestehende Einträge in der DB updaten will. :)

20one, Warum möchtest du die Felder mit leeren Einträgen überhaupt durch "---" ersetzen? Lass die Felder doch auf NULL, oder einem leeren String - das macht mehr Sinn als irgend so ein nichtssagender Wert...

20one 02.02.2009 16:19:06

AW: Leere Columns füllen?
 
Danke ... bleibt aber auch leer.

Ja soviel kann ich ja schon ... Nur ich wusste nicht wofür ich hier eine Bedingung benötige.

zB. WHERE userid = 21; wäre doch richtig, oder?

20one 02.02.2009 16:21:37

AW: Leere Columns füllen?
 
Hi Crisps,

danke für deine Antwort. Richtig, ich habe bereits ca. 2200 Einträge.
Der Grund wieso ich das machen möchte, ist dieser ...
Ich gebe diese Userdaten in Flex in einem DataGrid aus. Wenn jetzt zB. User 10 eine Anrede hat und die darauf folgenden 100 nicht, passierts beim nachunten scrollen das trotzdem eine Anrede dargestellt wird. Keine Ahnung woher dieser Bug kommt.

Verstehst was ich meine?

Zitat:

Zitat von Crisps (Beitrag 124102)
schrubba - Ich glaube, dass 20one bereits bestehende Einträge in der DB updaten will. :)

20one, Warum möchtest du die Felder mit leeren Einträgen überhaupt durch "---" ersetzen? Lass die Felder doch auf NULL, oder einem leeren String - das macht mehr Sinn als irgend so ein nichtssagender Wert...


schrubba 02.02.2009 16:27:00

AW: Leere Columns füllen?
 
Ja das wäre eine richtige Bedingung..

Also eigentlich sollte die Abfrage funktionieren, es sei denn Du hast die beiden Singlequotes (') als Doubleqoute (") gelesen. Dann sollte aber eine Fehlermeldung kommen.

@Crisp
Wie auch immer, das Update würde ja genauso funktionieren, aber wenn nicht mal die Ausgabe geht.. ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:20:48 Uhr.

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