sql >> Database >  >> RDS >> Mysql

Hoe meerdere records (rij) uit een kolom in mysql te selecteren?

U kunt beide doen, maar de IN-query is voor dit doel veel efficiënter voor grote query's. Ik heb lang geleden een paar eenvoudige tests gedaan waaruit bleek dat het ongeveer 10 keer sneller is om de IN-constructie hiervoor te gebruiken. Als je vraagt ​​of de syntaxis correct is, ja, het ziet er goed uit, behalve dat er puntkomma's ontbreken om de verklaring te voltooien.

BEWERKEN :Het lijkt erop dat de eigenlijke vraag die u stelde was "waarom geven deze zoekopdrachten slechts één waarde terug". Nou, kijkend naar de voorbeeldcode die je hebt gepost, is het probleem hier:

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

Je moet doorlopen en herhalen totdat er geen resultaten meer kunnen worden opgehaald, zoals Pax wees erop . Zie de PHP-handleiding voor 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);


  1. Alias ​​voor GROUP BY-clausule?

  2. Wat zijn de grootste voordelen van het gebruik van INDEXES in mysql?

  3. CLR strikte beveiliging op SQL Server 2017

  4. Tafelniveau Vergrendelen in sluimerstand