usando registros para obtener mostrar listar example ejemplo datos consulta codigo buscar php mysql sql string-comparison

registros - select php mysql consulta



MySQL consulta cadena contiene (7)

Además de la respuesta de @WoLpH.

Al utilizar la palabra clave LIKE , también tiene la capacidad de limitar la dirección en la que coincide la cadena. Por ejemplo:

Si estabas buscando una cuerda que comienza con tu $needle :

... WHERE column LIKE ''{$needle}%''

Si estabas buscando una cadena que termina con la $needle :

... WHERE column LIKE ''%{$needle}''

He estado tratando de averiguar cómo puedo hacer una consulta con MySQL que verifique si el valor (string $haystack ) en una columna determinada contiene ciertos datos (string $needle ), como este:

mysql_query(" SELECT * FROM `table` WHERE `column`.contains(''{$needle}'') ");

En PHP, la función se llama substr($haystack, $needle) , así que tal vez:

WHERE substr(`column`, ''{$needle}'')=1


Bastante simple en realidad:

mysql_query(" SELECT * FROM `table` WHERE `column` LIKE ''%{$needle}%'' ");

El % es un comodín para cualquier personaje. Tenga en cuenta que esto puede ser lento en conjuntos de datos muy grandes, por lo que si su base de datos crece, necesitará usar índices de texto completo.


El mío está usando LOCATE en mysql:

LOCATE (substr, str), LOCATE (substr, str, pos)

Esta función es segura de varios bytes y distingue entre mayúsculas y minúsculas solo si al menos un argumento es una cadena binaria.

En tu caso:

mysql_query(" SELECT * FROM `table` WHERE LOCATE(''{$needle}'',''column'') > 0 ");


Probablemente estés buscando la función find_in_set :

Where find_in_set($needle,''column'') > 0

Esta función actúa como la función in_array en PHP


Ten en cuenta que esto es peligroso:

WHERE `column` LIKE ''%{$needle}%''

hacer primero:

$needle = mysql_real_escape_string($needle);

por lo que evitará posibles ataques.


Utilizar:

SELECT * FROM `table` WHERE INSTR(`column`, ''{$needle}'') > 0

Referencia:


WHERE `column` LIKE ''%$needle%''