jojojo: MySQL: wie am schnellsten überprüfen ob ein wert schon vorhanden

Hi.

Was ist der schnellste Query der einen Wert auf vorhandenheit überprüft?

Wenn es die Spalten

id1 und id2 gibt der tabelle ids dann habe ich es immer so gemacht:

SELECT id1 FROM ids WHERE id2='xy'

wenn ein ergebnis zurückkam - top, wenn nicht - flop.

  1. Hi!

    Was ist der schnellste Query der einen Wert auf vorhandenheit überprüft?

    Es kommt darauf an, was du anschließend damit vorhast. Mitunter kann man solch eine Abfrage weglassen und das Problem gleich mit einem sowieso anschließend geplanten INSERT oder UPDATE lösen.

    Wenn es die Spalten
    id1 und id2 gibt der tabelle ids dann habe ich es immer so gemacht:
    SELECT id1 FROM ids WHERE id2='xy'
    wenn ein ergebnis zurückkam - top, wenn nicht - flop.

    Dinge zu selektieren, die man eigentlich gar nicht haben will, ist immer unschön. Wenn du eine Anzahl haben willst, zähle die Werte (COUNT(*)) und werte dann das Ergebnis aus.

    Deine Methode ist vielleicht vom reinen Code etwas weniger aufwendig beim Auswerten, doch sie nutzt nur eine Nebenwirkung aus. Das kann beim Leser zur Verwirrung führen, wenn da nicht auch noch daneben steht, warum man was abfragt, was man gar nicht haben will. Zusammen mit dem Kommentar kommst du auch auf die gleiche Menge Text wie beim COUNT(*) plus Auswertung.

    Lo!