Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So geben Sie die Position eines Arguments innerhalb einer Liste von Argumenten in MySQL zurück

In MySQL können Sie das FIELD() verwenden Funktion, um die Position einer bestimmten Zeichenfolge oder Zahl innerhalb einer Liste von Argumenten zurückzugeben. Die Funktion gibt den Index (Position) des ersten Arguments in der Liste der nachfolgenden Argumente zurück.

Die Syntax lautet wie folgt:

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

Wobei str ist das gesuchte Element und str1,str2,str3,... ist die Liste, die Sie durchsuchen.

Hier ist ein Beispiel:

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

Ergebnis:

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

In diesem Beispiel lautet die Liste:'Marge', 'Homer', 'Bart' und wir suchen nach der Zeichenfolge Homer innerhalb dieser Liste. Und weil Homer das 2. Element in der Liste der Argumente ist, ist das Ergebnis 2 .

Exakte Übereinstimmung

Beachten Sie, dass es eine exakte Übereinstimmung sein muss, andernfalls wird 0 zurückgegeben .

Zum Beispiel, wenn wir r weglassen von Homer , suchen wir schließlich nach Home stattdessen:

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

Ergebnis:

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

In diesem Fall, obwohl Homer enthält Home , ist es keine exakte Übereinstimmung und das Ergebnis ist 0 .

 Zahlen

Das FIELD() Funktion funktioniert auch mit Zahlen:

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

Ergebnis:

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

Wenn alle Argumente zu FIELD() Zahlen sind, werden alle Argumente als Zahlen verglichen. Wenn alle Zeichenketten sind, werden sie als Zeichenketten verglichen. Wenn sie gemischt sind, werden sie als doppelt verglichen.

Das FIELD() Funktion ist eine Ergänzung zu ELT() Funktion, mit der Sie ein Listenelement anhand seiner Position in der Liste finden können.

Siehe auch So geben Sie die Position eines Listenelements mit FIND_IN_SET() zurück Funktion.