2 Stimmen

unterstützt mysql gespeicherte Verfahren Datentypen wie Array, Hash, etc?

Ich erstelle eine Mysql-Funktion, die ein Varchar aufnimmt und es auf der Grundlage einer Zuordnungstabelle in ein Int ändert.

select name, convert_to_code(country) from users where sex = 'male'

hier, die convert_to_code() Funktion nimmt einen Ländernamen auf (z.B. Japan, Finnland ) und ändert ihn in einen Ländercode, der eine ganze Zahl ist (z.B. 1001, 2310 ), basierend auf einer Zuordnungstabelle namens country_maping wie unten:

country_name (varchar) | country_code (int)
Japan                  | 1001
Finland                | 2310
Canada                 | 8756

Derzeit muss die gespeicherte Funktion select country_code from country_mapping where country_name = country_name und das Abfrageergebnis zurückgeben. Ist es möglich, eine Hash-Datenstruktur in SP zu erstellen, um den Prozess zu optimieren, so dass die Abfrage nicht für jede Zeile durchgeführt werden muss, die mit der where Klausel.

vielen Dank im Voraus!

0voto

Bill Karwin Punkte 493880

Sie sollten die Tabelle einfach so verwenden, wie Sie es gerade tun.

Wenn Sie einen abdeckenden Index über diese beiden Spalten erstellen, sollte dies so effizient wie möglich sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X