我正在努力从 MySQL 查询中提取我需要的所有信息。我快到了,但需要帮助才能获取单独的值。
我的目标是收集表中拥有数组提供的所有产品的任何公司。该信息由最终用户通过使用 AJAX 提供。
查询还需要稍微流畅,因为提供product_ids的数组可能是无限的。
我的查询如下:
SELECT `company_id`, `product_id`, COUNT(*) as c
FROM `products`
WHERE `product_id` IN (2495, 2403)
GROUP BY `company_id`
HAVING c = 2
此查询提供的输出是 (A):
| company_id | product_id | c |
-------------------------------
| 1234 | 2495 | 2 |
但我追求的是(B):
| company_id | product_id | c |
-------------------------------
| 1234 | 2495 | 2 |
| 1234 | 2403 | 2 |
或者更好(C)
| company_id | product_id A | product_id B | c |
------------------------------------------------
| 1234 | 2495 | 2403 | 2 |
任何有关此问题的帮助将不胜感激,所以提前致谢!
最佳答案
结果 A 是根据 company_id
对查询进行分组的结果。
去掉GROUP BY
就可以得到结果B。我不是 MySQL 专家,我无法告诉你如何计算它(在同一个查询中)。但由于您也标记了 PHP,因此您可能会考虑使用 PHP 来计算结果。
对于结果 C,您可以查看 GROUP_CONCAT
,检查 this answer .
关于php - MySQL 搜索数组中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24406381/