Hallo Rolf,
Aber das macht es nicht besser. Nun fehlt dem CAST die Typenangabe, und die ist in keiner mir verfügbaren MYSQL-Doku optional. D.h. eigentlich ist das ein Syntaxerror, das SQL dürfte so nicht laufen.
Doch, doch...die läuft.
Wenn Deine "meineSpalte" nun tatsächlich NOCH mehr Attribute bündelt, tja, dann solltest Du vielleicht doch mal schauen, an wie vielen Stellen Du die Tabelle nutzt und über ein Redesign nachdenken.
...bin schon dabei (zu überlegen)
Nun ja. Du könntest einen VIEW erzeugen, der
meineSpalte
zerlegt, und deine Query auf diesen View absetzen. Das macht die Query lesbarer. Das Erzeugen einer temporären Tabelle macht die Sache nicht wirklich performanter
Ich meinte auch einen View, kannte aber den Namen hierfür nicht. Ich hatte gerade auch mal versucht, einen Trigger anzulegen, der für künftige Inserts ein Update auf die eingefügte Zeile macht, dass die Gesamtspalte nochmal auf Einzelspalten aufteilt. Das scheint Mysql aber nicht zu machen. Schade, das hätte mir erspart, diesbzgl. an den Quelltext herangehen zu müssen.
und das Erzeugen der Einzelspalten geht zwar (z.B. mit geschachtelten >SUBSTRING_INDEX), ist aber mühsam. Wenn es nur um "dieses Jahr" geht, >könnte es einfacher sein, das in die Filterbedingung zu setzen, also >
myStatus = 'KL' AND meineSpalte LIKE 'KL-19%'
.
Ja...das würde gehen. Ich bin bei LIKE, insbesondere mit Wildcarts immer ein bischen vorsichtig, die sehen für mich sehr arbeitsintensiv aus. Insgesamt scheint die Query echt zu einem Monster zu mutueren 😉
Pit