我正在使用 php + mysql,我在 DB 中有这样的表:
col1-col2-col3
A - val1 - str1
A - val2 - str2
A - val3 - str3
B - val4 - str4
B - val5 - str5
...
还有 php 中的 assoc 数组:
$arr = array('A'=>'value1','B'=>'value2', ...);
然后我在 MySql 字符串中的占位符中传递这个数组来制作完整的 SELECT 语句。
如何选择第 1 列的值等于数组的键和第 2 列的值分别小于数组值的第 3 列值?也许以某种方式使用带有两个选择的 GROUP 并将它们连接在一起......
结果应该只是满足要求的所有第 3 列值的列表。
它可以使用这样的东西来完成:
$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 进行选择并返回值列表中最后一列的值的方法,然后我们将列表添加到结果 $aReturn。但是在这种情况下它会查询几次,但是有没有办法只在一个SELECT 中做到这一点?