Diferencia entre WHERE FIND_IN_SET(…)>0 y WHERE FIND_IN_SET(…) en SQL

FIND_IN_SET(…): esta función devuelve el índice (a partir de 1) de la string requerida en una lista dada de strings si está presente en la lista. Si la string requerida está ausente en la lista de strings dada, se devuelve 0.

Sintaxis:

SELECT FIND_IN_SET(REQUIRED_STRING, 
LIST_OF_STRINGS);

FIND_IN_SET(…)>0: esta función devuelve solo 2 valores, es decir, 1 o 0. Se devuelve 1 si la string requerida está presente en la lista de strings dada y 0 si la string requerida está ausente en la lista de strings dada. .

Sintaxis:

SELECT FIND_IN_SET(REQUIRED_STRING, 
LIST_OF_STRINGS)>0;

Se presentan los siguientes casos:

  • Cuando REQUIRED_STRING está presente en la LIST_OF_STRINGS dada.

Consulta:

SELECT FIND_IN_SET("STUDENT", 
"PARENT,STUDENT,TEACHER");

Producción:

Consulta:

SELECT FIND_IN_SET("STUDENT", 
"PARENT,STUDENT,TEACHER")>0;

Producción:

  • Cuando REQUIRED_STRING está ausente en la LIST_OF_STRINGS dada.

Consulta:

SELECT FIND_IN_SET("PEON", 
"PARENT,STUDENT,TEACHER");

Producción:

Consulta:

SELECT FIND_IN_SET("PEON", 
"PARENT,STUDENT,TEACHER")>0;

Producción:

Cuando la string requerida o la lista de strings dada está vacía, es decir, es igual a «», ambas funciones devuelven 0. De manera similar, cuando la string requerida o la lista de strings dada es NULL, ambas funciones devuelven NULL

Por lo tanto, podemos observar que la principal diferencia entre FIND_IN_SET(…) y FIND_IN_SET(…)>0 surge cuando la string requerida está presente en la lista de strings dada. En este caso, la función FIND_IN_SET(…) devuelve el índice (a partir de 1) de la string requerida, mientras que la función FIND_IN_SET(…)>0 devuelve 1 independientemente de la posición de la string requerida.

Publicación traducida automáticamente

Artículo escrito por abhisri459 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *