使用PHP和MySQL。我有一个数组P,其中包含可能的产品类别编号的值。在我的表中,它还有字段“类别”,它存储了类别编号和其他。我想要的是在所有行中选择数据,“category”字段在数组P中有任何值。我该怎么办?
例如
P = [1,7,13]
SELECT * FROM table WHERE category=P[1] OR categry=P[2] OR category=P[3]....
答案 0 :(得分:2)
使用:
$categories = implode(', ', $p); // Where $p is the array
SELECT * FROM table WHERE category IN ($categories)
答案 1 :(得分:1)
$sql = "SELECT * FROM table WHERE category IN (".implode(",", $P).")"
答案 2 :(得分:0)
您应该使用IN
关键字:
SELECT * FROM table WHERE category IN (p[1], p[2], p[3])
implode
:
$categories = implode(',', $P);
答案 3 :(得分:0)
使用字符串连接:
$P = array(1, 7, 13);
$query = "SELECT * FROM table WHERE category=".$P[1]." OR
category=".$P[2]." OR category=".P[3]."....";
或
$query = "SELECT * FROM table WHERE category={$P[1]} OR
category={$P[2]} OR category={P[3]}....";
答案 4 :(得分:0)
由于P数组中可能包含多于/少于3个值,因此最好首先进行查询:
$p = array('1', '2', '3', '4', '5');
$auto = '';
foreach($p as $value){
$auto .= "'".$value."'" . " OR category= ";
}
$auto = substr($auto, 0 , strlen($auto) - 14);
$the_query = "SELECT * FROM table WHERE category= $auto";
echo $the_query;
// mysql_query($the_query);
上述代码的结果,P具有3个值:
SELECT * FROM table WHERE category= '1' OR category= '2' OR category= '3' OR category= '4' OR category= '5'
这将根据P
数组中的值数自动生成查询。