Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để chọn nhiều bản ghi (hàng) từ một cột trong mysql?

Bạn có thể làm một trong hai, nhưng truy vấn IN hiệu quả hơn nhiều cho mục đích này đối với bất kỳ truy vấn lớn nào. Tôi đã thực hiện một số thử nghiệm đơn giản từ lâu cho thấy sử dụng cấu trúc IN nhanh hơn khoảng 10 lần cho việc này. Nếu bạn đang hỏi liệu cú pháp có đúng không thì có, nó có vẻ ổn, ngoại trừ việc thiếu dấu chấm phẩy để hoàn thành câu lệnh.

CHỈNH SỬA :Có vẻ như câu hỏi thực tế bạn đang hỏi là "tại sao những truy vấn này chỉ trả về một giá trị". Chà, nhìn vào mã mẫu bạn đã đăng, vấn đề là ở đây:

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

Bạn cần lặp lại và lặp lại cho đến khi không còn kết quả nào được tìm nạp, vì Pax đã chỉ ra . Xem trang hướng dẫn sử dụng PHP để biết 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. lược đồ cơ sở dữ liệu tình bạn

  2. Đọc từ luồng không thành công - lỗi mysql_native_password

  3. Nào là nhanh nhất? CHỌN SQL_CALC_FOUND_ROWS TỪ `bảng` hoặc CHỌN COUNT (*)

  4. MySQL tham gia cùng một bảng hai lần trên cùng một cột với giá trị khác nhau chỉ trả về hàng gần đây nhất

  5. Xử lý MySQL Zero Date với EF Core