我正在尝试选择符合客户偏好的产品(即他们喜欢的颜色),但是当子查询中评估的值是数组时,我无法创建 IN 语句。
为了简化问题,我只包括了几个字段,但是每个客户都有几百个字段,其中大约一半是数组,并且有 apx. 每个产品的字段数量相同。
如果选择了一种以上的颜色,则此查询不起作用:
$result = mysql_query("SELECT * FROM products WHERE color IN
(SELECT colors_love FROM style WHERE style.user_id=$user_id)")
我也尝试像这样爆炸数组:
while ($row = mysql_fetch_array($result)) {
$colors_love = explode(',', $row['colors_love']);
echo $row['product_name']. ", ". $row['style']. ",". $row['color']. ", ". $row['price'];
}
由于这产生了相同的结果,我假设这不是问题,或者在查询中使用它之前需要对其进行分解——我不太确定该怎么做。