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!