Saltar al contenido

MySQL: ¿cómo seleccionar filas donde el valor está en la matriz?

Solución:

Utilice la función FIND_IN_SET:

SELECT t.*
  FROM YOUR_TABLE t
 WHERE FIND_IN_SET(3, t.ids) > 0

Para cuando la consulta llegue a SQL, ya debe haber expandido la lista. La forma fácil de hacer esto, si está utilizando ID de alguna fuente de datos interna y confiable, donde puede estar 100% seguro de que son números enteros (por ejemplo, si los seleccionó de su base de datos antes) es la siguiente:

$sql="SELECT * WHERE id IN (" . implode(',', $ids) . ')';

Sin embargo, si sus datos provienen del usuario, deberá asegurarse de obtener solo valores enteros, tal vez más fácilmente así:

$sql="SELECT * WHERE id IN (" . implode(',', array_map('intval', $ids)) . ')';

Si el elemento de la matriz no es un número entero, puede usar algo como a continuación:

$skus  = array('LDRES10','LDRES12','LDRES11');   //sample data

if(!empty($skus)){     
    $sql = "SELECT * FROM `products` WHERE `prodCode` IN ('" . implode("','", $skus) . "') "      
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

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