zufällig 10 nicht leere datensätze?
han
- datenbank
Hallo,
ich möchte Zufällig 10 Datensätze aus einer MySql-Datenbank hohlen, aber nur nicht-leere Felder, sollen abgerufen werden, sodass ich am Ende 10 nicht-leere Werte habe.
Nun habe ich das zuerst so probiert:
SELECT spalte1 FROM tabelle ORDER BY RAND() LIMIT 0,10
Dann hatte ich zwar 10 zufällige Datensätze, aber halt auch leere...
Also habe ich noch ein WHERE eingebaut:
SELECT spalte1 FROM tabelle WHERE spalte1!='' ORDER BY RAND() LIMIT 0,10
Nur leider funktioniert das nicht, wie ich es mir vorstelle, ich bekomme nur noch einen Datensatz.
Wo liegt mein Fehler?
griesle
WHERE spalte1 != ''
WHERE spalte1 != ''
Ou, sorry war ein Fehler beim Reinkopieren, die Abfrage wird in php verwendet, und da muss ich die \ vor die einfachen Kommas stellen, da es ja sont nicht escaped ist und nicht geht...
also das ist nicht der fehler...
Du hast auch wirklich mehr als 1 nicht leere Datensätze?
ja, habe ich...habe es mit einem probiert dann habe ich zum testen extra mal noch wleche hinzugefügt, dann waren es 3, dann ging es auch nocht nicht und jetzt sind es 20 felder mit wert und ich kriege dennoch nur einen...
hast Du mal das von Volker ausprobiert?
oder einfach hinter dem Absetzen des querys: echo mysql_error();
Ou, sorry war ein Fehler beim Reinkopieren, die Abfrage wird in php verwendet, und da muss ich die \ vor die einfachen Kommas stellen, da es ja sont nicht escaped ist und nicht geht...
Falsch.
Dein Abfrage sollte z.B. derart aussehen:
tempSQL = mysql_query (" SELECT spalte1 FROM tabelle WHERE spalte1!= '' ORDER BY RAND() LIMIT 0,10 ") or die (mysql_error());
Damit verhinderst du, dass PHP mit " und ' durcheinanderkommt.
also das ist nicht der fehler...
Doch, irgendwie schon.
Gruß,
Volker
Nein es ist ncht der Fehler!
Ob ich ' oder " verwende ist egal solange ich richtig escape (und das ist mit / der Fall); der einzigste Unterschied ist, dass der Parser innerhalb von " noch nach Variablen sucht, er also länger braucht...
griesle
echo $begrüßung;
der einzigste Unterschied ist,
Einzig ist doch schon wenig genug. Was willst du da noch steigern?
dass der Parser innerhalb von " noch nach Variablen sucht, er also länger braucht...
Der Zeitunterschied ist dermaßen gering, dass das in der Praxis völlig unbeachtet gelassen werden kann. Um eine fühlbare Differenz zu bekommen, brauchst du schon jede Menge Strings, und dann beträgt die Erzeugungszeit der Daten nur ein Bruchteil der Download-Zeit der Datenmenge, falls du nicht schon vorher an ein eingestelltes Speicherlimit von PHP gerätst.
echo "$verabschiedung $name";
Hi han!
Nein es ist ncht der Fehler!
Beherzige Volkers Ratschlag. Ich ahne schon, was bei dir schief geht, aber ohne Quelltext ist das nichts zu machen.
MfG H☼psel
Hello,
Wo liegt mein Fehler?
schwer zu sagen, was ergibt denn
SELECT spalte1 FROM tabelle WHERE spalte1 <> ''
das ORDER BY ändert ja nur die Reihenfolge
MfG
Rouven
Hallo Griesle
SELECT spalte1 FROM tabelle WHERE spalte1!='' ORDER BY RAND() LIMIT 0,10
Die Sache mit den maskierten Anführungszeichen geht ja wie du erwähnt hast auf PHP zurück, aber soviel ich weiß ist der Operator für ungleich in SQL nicht !=, sondern <>. Also:
SELECT spalte1 FROM tabelle WHERE spalte1<>'' ORDER BY RAND() LIMIT 0,10
Liebe Grüße mbr