Anda dapat melakukan salah satunya, tetapi kueri IN jauh lebih efisien untuk tujuan ini untuk kueri besar apa pun. Saya melakukan beberapa pengujian sederhana sejak lama yang mengungkapkan bahwa sekitar 10 kali lebih cepat menggunakan konstruksi IN untuk ini. Jika Anda bertanya apakah sintaksnya benar maka ya, itu terlihat baik-baik saja, selain titik koma yang hilang untuk melengkapi pernyataan.
EDIT :Sepertinya pertanyaan sebenarnya yang Anda tanyakan adalah "mengapa kueri ini hanya mengembalikan satu nilai". Nah, melihat contoh kode yang Anda posting, masalahnya ada di sini:
$fetch = mysql_fetch_assoc($result) or die (mysql_error());
$itemsCollected = $fetch['item_name'];
echo $itemsCollected;
Anda perlu mengulang dan mengulangi hingga tidak ada lagi hasil yang dapat diambil, seperti Pax menunjukkan . Lihat halaman manual PHP untuk 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);