Jörg Reinholz: Nach verbundenen String über zwei Spalten suchen

Beitrag lesen

Ich weiß, dass ich durch CONCAT bei der Ausgabe zwei Spalten als eine Variable speichern kann. Wie ist das aber, wenn ich 2 Spalten habe, die eigentlich zusammengesetzt werden müssten, um den Datensatz eindeutig zu identifizieren bei einer Abfrage?

Ja, dann kannst Du die Variable auch in der where-clausel benutzen:

SELECT CONCAT(user, host) AS aFROMuser WHERE CONCAT(user, host)="ticketlocalhost"

+-----------------+
| a               |
+-----------------+
| ticketlocalhost |
+-----------------+
1 row in set (0.00 sec)

Aber: Das wird jedes mal zu einem Vollscan führen, das bedeutet Indizes sind nicht nutzbar, die Abfrage wird, wenn die Datenbank größer wird (oder ist) möglicherweise sehr lange dauern.

Besser wäre es demnach die Daten in einer Spalte auch zu zusammenzufügen, zu indizieren und die WHERE-Clausel auf diese Spalte zu beziehen.

Jörg Reinholz