使用 CASE 或 IF/ELSE 确定 MySQL 中的产品可见性
在产品可见性由制造商定义的区域确定的场景中,您可能会遇到需要根据每个产品的状态(新的或二手的)和制造商指定的相应区域设置来动态计算每个产品的可见区域。这可以使用 MySQL 中的 CASE 或 IF/ELSE 语句来实现。
CASE 语句方法:
SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, CASE status WHEN 'New' THEN t2.expose_new WHEN 'Used' THEN t2.expose_used ELSE NULL END as 'expose' FROM `products` t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238
在此查询中,CASE 语句评估状态产品(新产品或二手产品)的信息,并根据制造商的exposure_new 或expose_used 设置有条件地分配适当的曝光值。结果是每个产品的个位数“暴露”值,指示其可见区域。
IF/ELSE 方法:
当 IF/ELSE 接近您时尝试包含逻辑错误,更正的版本可能是:
SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, IF(status = 'New', t2.expose_new, IF(status = 'Used', t2.expose_used, NULL)) as 'expose' FROM `products` t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238
在此更正的查询中,IF/ELSE语句根据产品的状态和制造商的暴露设置有条件地分配暴露值。结果与 CASE 语句方法相同,为每个产品提供“暴露”值。
通过利用 MySQL 中的 CASE 或 IF/ELSE 语句,您可以有效计算基于产品的可见区域根据制造商指定的规则,实现产品信息的动态和条件显示。
以上是如何根据制造商区域设置动态确定产品在 MySQL 中的可见性?的详细内容。更多信息请关注PHP中文网其他相关文章!