SQL Query OK???
ulimativ
- datenbank
0 Daniela Koller0 ulimativ0 Daniela Koller0 Mulder
hi!
ICh will alle Datensätze aus der Spalte haben die mit dem buchstaben beginnen.
Also dann in PHP z.B.
$buchtstabe=a;
mysql_query("select * from tabelle where titel like '^$buchstabe%'");
bringt das den gewünschten erfolg?
sorry bin heute zu faul zum testen z:-o
uli
Hi Uli
Also dann in PHP z.B.
$buchtstabe=a;
mysql_query("select * from tabelle where titel like '^$buchstabe%'");
bringt das den gewünschten erfolg?
Nein, das ist keine RegularExpression was like haben will. Falls
du mit RegExpen arbeiten will kann MySQL das auch, aber das geht
ganz anders. Wenn du willst das es geht, nimm einfach '$buchstabe%'.
Wo kein _ oder % ist will MySql auch zwingend den Buchstaben an
erster Stelle haben.
Zudem solltest du dir echt das Select * abgewöhnen, das ist einfach
nur grässlich.
sorry bin heute zu faul zum testen z:-o
Ich hätte jetzt auch fies sein können und auch nur Nein posten können.
Das wäre auch faul gewesen, hier wird von dir erwartet das du testest.
Gruss Daniela
sorry bin heute zu faul zum testen z:-o
Ich hätte jetzt auch fies sein können und auch nur Nein posten können.
Das wäre auch faul gewesen, hier wird von dir erwartet das du testest.
ich weis, abe man darf auch mal einen faulen tag erwischen. bin heute echt ziemlich schlapp.
was hat das eigentlich genau für einen grund select * zu vermeiden.
Danke nochmal
Uli
Hi Uli
was hat das eigentlich genau für einen grund select * zu vermeiden.
Wenn dein Tabellenlayout nicht ändert (also keine Spalte hinzukommt)
passiert nichts ausser das du deine Datenbankverbindung mit Felder
die du nicht weiterverarbeitest unnötig belastest.
Wenn jedoch dein Tabellenlayout ändert kann vieles passieren. Im
besten Fall belastest du die Datenbankverbindung nur unnötig. Wenn
du jedoch Pech hast in der Art wie du die Daten verarbeitest
(zb über die anz Spalten drüber iterieren) dann kannst du Verschiebungen
kriegen oder auch eine Spalte die du wolltest nicht mehr reinkriegen
weil du die Reihenfolge nicht festgelegt hast, vielleicht kriegst
du sogar Abstürze. Je nach Sprache kriegst du auch ohne spezielle
Behandlung Abstürze. PL/1 arbeitet zb mit der into-clause in der
Query, und da muss die Anzahl und die Typen genau übereinstimmen mit
der Anzahl Spalten die von der Query zurückkommen.
Gruss Daniela
was hat das eigentlich genau für einen grund select * zu vermeiden.
Generell ist nix dagegen zu sagen.
Aber stell Dir mal vor, Du join-st zwei Tabellen a und b, in denen jeweils eine Spalte "test" vorkommt:
select a.*, b.*
from a, b
where a.ref = b.ref;
Die resultierende Kreuztabelle hätte dann die Spalte "test" 'doppelt' (d.h. die DB sucht sich eine aus und ignoriert die andere :), und Du wunderst Dich, wieso Zugriff auf "test" nicth so geht, wie Du erwartest.