sql >> データベース >  >> RDS >> Mysql

mysqlの列から複数のレコード(行)を選択するにはどうすればよいですか?

    どちらでも実行できますが、大規模なクエリの場合、この目的にはINクエリの方がはるかに効率的です。私はずっと前にいくつかの簡単なテストを行いましたが、これにIN構造を使用する方が約10倍高速であることがわかりました。構文が正しいかどうかを尋ねる場合は、はい、ステートメントを完了するためのセミコロンがないことを除けば、問題ないように見えます。

    編集 :あなたが尋ねていた実際の質問は、「なぜこれらのクエリは1つの値しか返さないのか」だったようです。さて、あなたが投稿したサンプルコードを見ると、問題はここにあります:

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

    パックスが指摘 mysql_fetch_assoc については、PHPのマニュアルページを参照してください。

    $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. PLSQL Anonymousブロックが完了したときに出力がないのはなぜですか?

    2. MySQL-ネストされたselectがそのテーブルを使用しているときにテーブルから削除するにはどうすればよいですか?

    3. 名前にダッシュが含まれているテーブルに挿入します

    4. 結果セットをループする