Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zwrócić pozycję argumentu na liście argumentów w MySQL?

W MySQL możesz użyć FIELD() funkcja zwracająca pozycję danego ciągu lub liczby na liście argumentów. Funkcja zwraca indeks (pozycję) pierwszego argumentu na liście kolejnych argumentów.

Składnia wygląda tak:

FIELD(str,str1,str2,str3,...)

Gdzie str to element, który chcesz znaleźć, a str1,str2,str3,... to lista, którą przeszukujesz.

Oto przykład:

SELECT FIELD('Homer', 'Marge', 'Homer', 'Bart') AS 'Where is Homer?';

Wynik:

+-----------------+
| Where is Homer? |
+-----------------+
|               2 |
+-----------------+

W tym przykładzie lista to:'Marge', 'Homer', 'Bart' i szukamy ciągu Homer na tej liście. A ponieważ Homer jest drugą pozycją na liście argumentów, wynikiem jest 2 .

Dopasowanie ścisłe

Pamiętaj, że musi to być dokładne dopasowanie, w przeciwnym razie zwróci 0 .

Na przykład, jeśli upuścimy r od Homer , w końcu szukamy Home zamiast tego:

SELECT FIELD('Home', 'Marge', 'Homer', 'Bart') AS 'Where is Home?';

Wynik:

+-----------------+
| Where is Home? |
+-----------------+
|               0 |
+-----------------+

W tym przypadku, mimo że Homer zawiera Home , nie jest to dokładne dopasowanie, a wynik to 0 .

 Liczby

FIELD() funkcja działa również z liczbami:

SELECT FIELD(1, 3, 2, 1) AS 'Where is 1?';

Wynik:

+-------------+
| Where is 1? |
+-------------+
|           3 |
+-------------+

Kiedy wszystkie argumenty FIELD() są liczbami, wszystkie argumenty są porównywane jako liczby. Jeśli wszystkie są ciągami, są porównywane jako ciągi. Jeśli są pomieszane, są porównywane jako podwójne.

FIELD() funkcja jest uzupełnieniem ELT() funkcja, która pozwala znaleźć pozycję na liście według jej pozycji na liście.

Zobacz też Jak zwrócić pozycję elementu listy za pomocą FIND_IN_SET() funkcja.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaimportować plik CSV do tabeli MySQL

  2. Jakie znaczenie ma znak zapytania w MySQL w kolumnie WHERE =??

  3. Instrukcja SQL ignoruje parametr gdzie

  4. Przekazywanie parametrów do przygotowanego oświadczenia JDBC

  5. Jak uzyskać dostęp do obiektu RowDataPacket?