gpt4 book ai didi

php - mysql 连接多个where

转载 作者:行者123 更新时间:2023-11-29 10:02:57 29 4
gpt4 key购买 nike

我有一个sql查询。 Where 子句有点棘手,因为我需要它来告诉 fv.position 应该大于一个数字,并且 id_feature 应该大于一个特定数字,但仅限于该状态。所以可能有多个这样的堆栈。

这是我迄今为止想到的:

SELECT
*
FROM
psx_product p
INNER JOIN
psx_feature_product fp ON fp.id_product = p.id_product
INNER JOIN
psx_feature_value fv ON fp.`id_feature_value` = fv.`id_feature_value`
WHERE
(fv.position > 0 AND fp.id_feature = 6)
AND
(fv.position > 5 AND fp.id_feature = 7)
AND
(fv.position > 2 AND fp.id_feature = 8)

但我认为上面的例子是错误的处理方式,因为fv.position不知道它只连接到插入中的特征,并且堆叠where语句,只是给出空结果,where,一个给出结果。这应该如何正确完成?

最佳答案

如果我理解正确的话,在 where 子句中,您需要在案例之间使用 OR,而不是 AND显然一个字段不能同时等于2个不同的值

如果有一个公式设置fv.position和fp.id_feature的参数,那么您可以保存所有特定条件并编写一个特定的条件。

    SELECT * FROM psx_product p
INNER JOIN psx_feature_product fp ON fp.id_product = p.id_product
INNER JOIN psx_feature_value fv ON fp.`id_feature_value` = fv.`id_feature_value` WHERE
(fv.position > 0 AND fp.id_feature = 6) OR
(fv.position > 5 AND fp.id_feature = 7) OR
(fv.position > 2 AND fp.id_feature = 8)

关于php - mysql 连接多个where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52545474/

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