EpicWEB.pl

webdesign, programowanie, phat lewt!

Ostatni projekt

ddrpl.com

Ostatnie wiadomości

Funkcja FIELD()

Funkcja FIELD() w MySQL zwraca pozycję pierwszego podanego stringu w zbiorze stringów, podanych jako kolejne argumenty funkcji.

Niby nic specjalnego, ale jednak ma ona jedno kluczowe zastosowanie!

Wyobraźmy sobie taką kwerendę:

SELECT * FROM `items` WHERE `id` IN(1, 8, 2, 14, 16, 7)

Najprostsza w świecie kwerenda zwracająca nam przedmioty z jakiegośtam zbioru. W jakiej kolejności będą posortowane wyniki? Najprawdopodobniej wg. PRIMARY KEY. Ale co zrobić, jeżeli chcemy by były w takiej, jaka widnieje w IN() - może są to dane uzyskane z zewnętrznego źródła, posortowane tak, jak oczekuje tego klient?

Tu z pomocą przychodzi nam FIELD() - dzięki tej funkcji wszystko posortujemy tak jak chcemy i to błyskiem. Wystarczy przerobić kwerendę na następującą:

SELECT * FROM `items` WHERE `id` IN(1, 8, 2, 14, 16, 7) ORDER BY FIELD(`id`, 1, 8, 2, 14, 16, 7)

Dzięki temu wyniki będą posortowane dokładnie w takiej kolejności, w jakiej występują w podanym zbiorze!

Zostaw komentarz