sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo seleccionar varios registros (fila) de una columna en mysql?

Puede hacer cualquiera de los dos, pero la consulta IN es mucho más eficiente para este propósito para cualquier consulta grande. Hice algunas pruebas simples hace mucho tiempo que revelaron que es aproximadamente 10 veces más rápido usar la construcción IN para esto. Si está preguntando si la sintaxis es correcta, entonces sí, se ve bien, aparte de que faltan puntos y comas para completar la declaración.

EDITAR :Parece que la pregunta real que estaba haciendo era "¿por qué estas consultas solo devuelven un valor". Bueno, mirando el código de muestra que publicaste, el problema está aquí:

$fetch = mysql_fetch_assoc($result) or die (mysql_error());
$itemsCollected = $fetch['item_name'];
echo $itemsCollected;

Debe recorrer e iterar hasta que no haya más resultados para obtener, como Pax señaló . Consulte la página del manual de PHP para mysql_fetch_assoc :

$sql = "SELECT item_name from items WHERE item_id IN('s001','a012')";
$result = mysql_query($sql);

if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
}

// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
//       then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

mysql_free_result($result);