MySQL obsługuje niektóre funkcje, których można użyć do wyodrębnienia pozycji indeksu lub rzeczywistej wartości z zestawu wartości ułożonych w postaci tablicy. Przykładami takich funkcji są ELT() i FIELD(). Pozwól nam zrozumieć o nich w szczegółach.
Funkcja ELT() akceptuje wiele argumentów, gdzie pierwszym argumentem jest liczba. Zwraca wartość dostępną na pozycji określonej w pierwszym argumencie.
SELECT ELT(3,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Powyższe zapytanie zwraca wyniki jako „Mój SQL”. Z zestawu dostępnych wartości zwraca trzecią wartość, którą jest Mój SQL. Zwraca NULL, jeśli pierwszy argument jest równy 0, mniejszy od zera lub większy niż łączna liczba argumentów
SELECT ELT(0,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Oto kolejne dwa przykłady, które zwrócą wynik jako wartość null.
SELECT ELT(31,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
SELECT ELT(-5,'SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Wszystkie powyższe zwracają wartość NULL.
Funkcja FILED() jest przeciwieństwem funkcji ELT(). Przyjmuje wiele argumentów i zwraca pozycję wartości w tablicy określonej jako pierwsza wartość
SELECT FIELD('My SQL','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Powyższe zwraca 3 jako wartość określoną w pierwszym argumencie „Mój SQL” jest dostępny na 3 pozycji w tablicy.
Zwraca 0, jeśli wartość nie jest określona w tablicy
SELECT FIELD('COMPUTER','SQL','ORACLE','My SQL','SQL SERVER') AS ColumnName;
Wynik to 0.
Czy kiedykolwiek używałeś tych funkcji w swojej logice biznesowej? Jeśli tak, chciałbym je poznać.