私はphp + mysqlを使用しています.DBにそのようなテーブルがあります:
col1-col2-col3
A - val1 - str1
A - val2 - str2
A - val3 - str3
B - val4 - str4
B - val5 - str5
...
また、PHPの連想配列:
$arr = array('A'=>'value1','B'=>'value2', ...);
次に、この配列を MySql 文字列のプレースホルダーに渡して、完全な SELECT ステートメントを作成します。
列 1 の値が配列のキーに等しく、列 2 の値がそれぞれ配列の値より小さい列 3 の値を選択する方法は? たぶん、どういうわけか2つの選択でGROUPを使用して、それらを結合します...
結果は、要件を満たすすべての列 3 の値のリストになります。
次のように sth を使用して実行できます。
$aReturn = array();
$sql = "SELECT col3 FROM MyTab WHERE col1 = ? AND col2 < ?d";
foreach ($arr as $k=>$v) {
$aReturn = array_merge($aReturn, $this->select($sql, $k, $v));
}
select は DB に select を作成し、値のリストの最後の列の値を返すメソッドであり、結果の $aReturn に list を追加します。しかし、この場合は複数回クエリを実行することになりますが、 1 回のSELECTだけで実行する方法はありますか?