gpt4 book ai didi

php - 多个 AND 的组合,NOT IN 条件在 php mysql 查询中不能正常工作

转载 作者:搜寻专家 更新时间:2023-10-30 22:07:50 25 4
gpt4 key购买 nike

你好我写了下面的查询

SELECT *
FROM `product`
WHERE (`color` IN ('black'))
OR (`pattern` IN ('pattern-1', 'pattern-2', 'pattern-3'))
AND `p_category` LIKE '%Blind%'
AND id NOT IN('20', '19', '18', '17', '11')
ORDER BY id DESC

但出于某种原因,它显示了 ID 为 '20', '19', '18', '17', '11'

的产品

我认为这些信息足以解决这个问题。

更新

在这里我想不出我需要改变的地方。我在这里使用 ajax 。所有操作都在该页面中进行。发布变量获取称为页面的 ajax 我执行的操作是

$keyword_array= ( [keyword] => Array ( 
[0] => color*black
[1] => pattern*pattern-1
[2] => pattern*pattern-2
[3] => pattern*pattern-3 )
[y_id] => Array (
[0] => 20
[1] => 19
[2] => 18
[3] => 17
[4] => 11 )
[category] => Romex Blind );


foreach ( $keyword_array as $value) {
list($before, $after) = explode('*', $value);
$elements[$before][] = $after;
}

$parts = [];

foreach ($elements as $column => $values) {
$parts[] = "(`$column` IN ('" . implode("', '", $values) . "'))";
}

$appear=implode("', '", $_POST['y_id']);

$query = "SELECT * FROM `product` WHERE " . implode(' OR ', $parts). " AND `p_category` LIKE '%".$_POST['category']."%' AND id NOT IN('{$appear}') ORDER BY id DESC";

请告诉我这个查询有什么错误。

最佳答案

围绕 or 表达式打断:

SELECT *
FROM `product`
WHERE (`color` IN ('black')
OR `pattern` IN ('pattern-1', 'pattern-2', 'pattern-3'))
AND `p_category` LIKE '%Blind%'
AND id NOT IN('20', '19', '18', '17', '11')
ORDER BY id DESC

更新尝试

 $query = "SELECT * FROM `product` WHERE (" . implode(' OR ', $parts). ")  AND `p_category``

关于php - 多个 AND 的组合,NOT IN 条件在 php mysql 查询中不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43887564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com