Die Suche nach Text innerhalb einer Spalte ist erschreckend ineffizient und lässt sich nicht gut skalieren (Funktionen pro Zeile haben in der Regel alle dieses Problem).
Was Sie tun sollten, ist, Speicherplatz (der billig ist) gegen Leistung (die teuer ist) zu tauschen. niemals billig) durch Anlegen einer neuen Spalte, hasNumerics
z. B. durch Hinzufügen eines Indexes und anschließende Verwendung eines Einfüge-/Aktualisierungstriggers, um ihn auf der Grundlage der Daten zu setzen, die in die eigentliche Spalte eingehen.
Dies bedeutet, dass die Berechnung durchgeführt wird nur wenn die Zeile erstellt oder geändert wird, nicht jedes einzelne Mal Sie extrahieren die Daten. Datenbanken sind fast siempre Sie werden viel öfter gelesen als geschrieben, und mit dieser Lösung können Sie die Kosten für die Berechnung über viele Jahre hinweg amortisieren. select
Anweisungsausführungen.
Wenn Sie dann Ihre Daten benötigen, verwenden Sie einfach:
select * from mytable where hasNumerics = 1; -- or true or ...
und beobachten Sie, wie es eine Abfrage mit regulärem Ausdruck hinterlässt oder like '%...%'
Ungeheuerlichkeit in ihren Staub.