sql >> Databasteknik >  >> RDS >> Mysql

Hur väljer man flera poster (rad) från en kolumn i mysql?

Du kan göra endera, men IN-frågan är mycket effektivare för detta ändamål för alla stora frågor. Jag gjorde några enkla tester för länge sedan som visade att det är cirka 10 gånger snabbare att använda IN-konstruktionen för detta. Om du frågar om syntaxen är korrekt så ja, det ser bra ut, förutom att semikolon saknas för att slutföra påståendet.

REDIGERA :Det verkar som att den faktiska frågan du ställde var "varför returnerar dessa frågor bara ett värde". Tja, när du tittar på exempelkoden du postade är problemet här:

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

Du måste gå igenom och iterera tills det inte finns fler resultat att hämta, eftersom Pax påpekade . Se PHP-manualsidan för 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. SQL Server Användardefinierade funktioner

  2. MySQL Prepare Statement - Maximal längd 1000 tecken

  3. Skriv fil från BLOB mysql python

  4. C# med MySQL INSERT-parametrar