0

テーブルからランダムIDの小さなリストを選択する効率的な方法を見つけようとしています。

IN演算子を使用するのは正しい選択のように思えますが、結果を希望どおりに使用する方法がわかりません。クエリが実行された後、結果を使用して特定の変数に割り当てるにはどうすればよいですか?または、クエリの一部として値を割り当てる方法はありますか?

$red_car1=1001;
$blue_car2=200;
$green_car3=56;


$query_cars= sprintf("SELECT * FROM cars WHERE id IN (%s, %s, %s)", $red_car1, $blue_car4, $green_car3);
$Cars1 = mysql_query($query_cars, $db) or die(mysql_error());

$red_car1_vin = $row_Cars1['vin'];
$blue_car1_vin = $row_Cars1['vin'];
$green_car1_vin = $row_Cars1['vin'];
4

2 に答える 2

1

プリペアドステートメントに慣れてください。ステートメントを1回準備し、n個の変数を使用してn回実行します。非常に効率的です。または、結果を繰り返します。

$tmp = array();
while($row_Cars1 = mysql_fetch_array($Cars1))
{
    $tmp[$row_Cars1['id']] = $row_Cars1;    
}

これで、結果との連想配列ができ、次のように使用できます。

$red_car1_vin = $tmp[$red_car1];
于 2013-03-19T15:54:20.403 に答える
0

サーバー側の言語がPHPの場合、コードは次のようになります-

     $con=mysqli_connect("your host","user","password","your db");

     $red_car1=1001;
        $blue_car2=200;
        $green_car3=56;


        $query_cars= "SELECT * FROM cars WHERE id 
        IN (".$red_car1.",".$blue_car2.",".$green_car3.")";
        $Cars1 = mysqli_query($con,$query_cars) or die(mysql_error());

    while($row = mysqli_fetch_array($Cars1))
      {
      echo $row['<<Your Desired field name1>>'] . " " . $row['<<Your Desired field name2>>'];// and so on
      echo "<br />";
      }

mysqli_close($con);

また、ここでより役立つ情報を得ることができます-http://www.w3schools.com/php/php_mysql_select.asp

ありがとう

于 2013-03-19T15:55:15.273 に答える