gpt4 book ai didi

mysql - 如何使用排除IN?

转载 作者:行者123 更新时间:2023-11-29 18:12:55 25 4
gpt4 key购买 nike

我有以下代码:

SELECT stores_tb.stores, sum(products_tb_tb.prices)
from products_tb
inner join stores_tb
on products_tb.id_store = stores_tb.id_store
where products_tb.barcode IN ($barcodes)
group by stores_tb.stores
order by sum(products_tb.prices)

作为 $barcodes 的一个数组(已转换为字符串),我通过 ajax 在执行 MySQL 的 php 文件中接收到该数组。

问题是 IN 是包容性的,对每个数组值使用 OR,这意味着如果 SELECT< 上需要其中一个存储 有一个,但不是数组中的所有条形码,都会显示。

我想知道是否存在像 IN 这样的函数(或使用 IN 函数的方法),其中它将仅返回包含所有在数组中传递的条形码,相当于对每个数组值使用 AND 而不是 OR

最佳答案

您可以使用 having 子句来做到这一点:

select s.stores, sum(p.prices)
from products_tb p join
stores_tb s
on p.id_store = s.id_store
where p.barcode IN ($barcodes)
group by s.stores
having count(distinct p.barcode) = $n -- the number of codes that need to match
order by sum(p.prices);

$n 值是 $barcodes 列表的长度(严格来说,是其中唯一项目的数量)。

关于mysql - 如何使用排除IN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253752/

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