Điều này phải thực sự đơn giản mà tôi biết, nhưng đối với cuộc sống của tôi, tôi không thể truy vấn để làm những gì tôi cần.Nhóm MySQL theo mệnh đề where với số lượng lớn hơn 1
Tôi đang tìm tất cả các hàng có trạng thái nhất định (paid
) được nhóm theo ref
nhưng chỉ khi có nhiều hơn 1 hàng được tìm thấy.
Đây là bảng mẫu của tôi:
+-----+----------+----------+-------+
| id | deleted | status | ref |
+-----+----------+----------+-------+
| 1 | 0 | pending | 10001 |
| 2 | 0 | paid | 10001 |
| 3 | 0 | paid | 10001 |
| 4 | 0 | paid | 10002 |
| 5 | 1 | pending | 10002 |
| 6 | 1 | paid | 10002 |
| 7 | 0 | pending | 10003 |
| 8 | 0 | paid | 10003 |
| 9 | 0 | paid | 10003 |
| 10 | 0 | paid | 10003 |
| 11 | 0 | pending | 10004 |
| 12 | 0 | paid | 10004 |
| 13 | 1 | pending | 10005 |
| 14 | 1 | paid | 10005 |
| 15 | 1 | paid | 10005 |
| 16 | 0 | paid | 10005 |
| 17 | 0 | pending | 10006 |
| 18 | 0 | paid | 10006 |
| 19 | 0 | paid | 10006 |
+-----+----------+----------+-------+
Đây là SQL của tôi:
SELECT * FROM `orders`
WHERE `deleted` = 0 AND `status` = 'paid'
GROUP BY SUBSTR(`ref`,0,5)
HAVING COUNT(*) > 1
ORDER BY `id` DESC
tôi cần phải có nó phù hợp bởi SUBSTR do ref
đôi khi chứa các số nối.
Vấn đề là truy vấn của tôi đang trở lại này:
+-----+----------+---------+-------+
| id | deleted | status | ref |
+-----+----------+---------+-------+
| 2 | 0 | paid | 10001 |
+-----+----------+---------+-------+
Khi tôi muốn nó được trở về ref
s 10001
, 10003
& 10006
.
Có ai có thể giúp tôi giải quyết những gì tôi đang làm không?
Cảm ơn
Và tôi đã đánh bại 8 giây .. :) – barsju
Thanx! Đánh giá cao .. Tôi đã bao gồm các báo từ doc .. Đó là những gì chi phí cho tôi trong 8 giây .. :) – barsju