1

私のmysqlデータベースには、自動インクリメントs.noとそれぞれのカップルがあります。names

現在、queries書かれているのは以下のようなものです。

    $result = mysql_query ("SELECT name FROM table WHERE s.no= '1'") or die (mysql_error ());
    while($row = mysql_fetch_array($result)){

    $name1= $row['name'];
    }

    $result = mysql_query ("SELECT name FROM table WHERE s.no= '2'") or die (mysql_error ());
    while($row = mysql_fetch_array($result)){

    $name2= $row['name'];
    }

name1単一のクエリを使用して from s.no=1nameNfromを割り当てるには、これをどのように最適化できますs.no=Nか??

4

4 に答える 4

5

INこれは句で行うことができます。

 SELECT name, s.no as no FROM table WHERE s.no IN ('1', '2')

次に、文字列を使用して変数を動的に検索します。

$varName = 'name'.$row['no'];
$$varName = $row['name];
于 2012-12-25T17:23:32.513 に答える
0
$sql = "SELECT name FROM table WHERE s.no IN ('1', '2') order by s.no asc";
$result = mysql_query($sql);
$name1 = mysql_result($result, 0, 0);//fetches row 0, column 0
$name2 = mysql_result($result, 1, 0);//fetches row 1, column 0

http://php.net/manual/en/function.mysql-result.php

于 2012-12-25T17:43:05.640 に答える
0

私のPHPを許してください、しかし、このようなものはうまくいくでしょう。

$name = [];

$result = mysql_query ("SELECT s.no, name FROM table") or die (mysql_error ());
while($row = mysql_fetch_array($result)) {
    $index = $row['no'];
    $name[$index] = $row['name'];
}

最近、バッチクエリで論理的な「グループ」を追跡するために Map を使用したJavaで同様のことをしなければなりませんでした。上記のコードは同じ考え方を使用しています。

(1, 2) で s.no の行のみを取得する場合は、上記のポスターが言うように、IN 句を使用できます。

于 2012-12-25T17:29:30.147 に答える
0
$result = mysql_query ("SELECT name,s.no numb FROM table WHERE s.no= '1' OR s.no= '2'") or die (mysql_error ());
while($row = mysql_fetch_array($result)){

if($row['numb']==1)
   $name1= $row['name'];
else if($row['numb']==2)
   $name2= $row['name'];

}
于 2012-12-25T17:26:15.097 に答える