我有一个包含存储如下数据的表:
product_name | quantity | tert
ASIZ A4 100 FOX | 20| BUYER1
CERVEZA A6 150 FOX | 15| BUYER1
ASIZ A4 150 FOX | 40| BUYER1
CERVEZA A6 11 FOX | 15| BUYER1
QUINTA A6 150 FOX | 15| BUYER2
ASIZ A4 150 FOX | 33 | BUYER2
ASIZ A6 150 FOX | 15| BUYER2
CERVEZA A6 150 FOX | 15| BUYER2
我想检索所有匹配第一个单词的数据(例如 ASIZ),然后将数量相加并显示如下:
BUYER1
Asiz - 60 pcs.
Cerveza = 30 pcs.
etc.
BUYER2
Asiz = 48 pcs.
Cerveza = 15 pcs.
等等
目前我正在使用 2 个 while 循环:
SELECT DISTINCT product_name
FROM my_table
WHERE buyer_code= '".$bcode."'
GROUP BY product_name
-- 我得到了产品名称
然后
SELECT DISTINCT product_name,tert, SUM(quantity) AS quantity
FROM my_table
WHERE buyer_code ='".$bcode."' AND
prouct_name LIKE '".$first_word_of_product_name."%'
GROUP BY tert
ORDER BY data ASC
我的总和是正确的,但每次它发现相似的命名产品时都会列出它们(例如:BUYER1: ASIZ - 2 times 等)
它显示:
Buyer1
ASIZ - 60
Cerveza - 30
ASIZ - 60
Cerveza - 30
我知道跟product_name有关系,但是sql语句应该怎么写才行呢? 谢谢
最佳答案
SELECT SUBSTRING_INDEX(product_name, '.', 1) product, tert, SUM(quantity) quantity
FROM my_table
GROUP BY product, tert
关于php - 如何在mysql中获取所有相似命名的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12215743/