如何在 MySQL 上排序 "intercalary" 行
How to order "intercalary" rows on MySQL
假设我有 1 table 个产品。并且每个产品都延迟到"gender"(女(1)或男(2))
该产品具有布尔属性,指示该产品是否在报价中。
解释示例:
ID_PRODUCT,性别,OFFER
1, 2 (male), 0
2, 2 (male), 1
3, 2 (male), 1
4, 1 (female), 1
5, 1 (female), 1
6, 2 (male), 1
我需要拿到所有的Offer,但是"intercalated"(我不知道英文怎么说...呵呵)...一男一女一男一女,一名男性......只有优惠。
在此示例中,响应显示为:
2, 2(m), 1
4, 1(f), 1
3, 2(m), 1
5, 1(f), 1
6, 2(m), 1
SELECT * FROM products WHERE offer = 1 ORDER BY ¿what?
我可以这样做吗?
提前致谢!
尝试:
SELECT p.*,
IF(`GENDER`='2 (male)',@m:=@m+1,@f:=@f+1) As position
FROM Products p,
(SELECT @m:=0,@f:=0) x
WHERE `OFFER` = 1
ORDER BY position, `GENDER` DESC
假设我有 1 table 个产品。并且每个产品都延迟到"gender"(女(1)或男(2))
该产品具有布尔属性,指示该产品是否在报价中。
解释示例: ID_PRODUCT,性别,OFFER
1, 2 (male), 0
2, 2 (male), 1
3, 2 (male), 1
4, 1 (female), 1
5, 1 (female), 1
6, 2 (male), 1
我需要拿到所有的Offer,但是"intercalated"(我不知道英文怎么说...呵呵)...一男一女一男一女,一名男性......只有优惠。
在此示例中,响应显示为:
2, 2(m), 1
4, 1(f), 1
3, 2(m), 1
5, 1(f), 1
6, 2(m), 1
SELECT * FROM products WHERE offer = 1 ORDER BY ¿what?
我可以这样做吗?
提前致谢!
尝试:
SELECT p.*,
IF(`GENDER`='2 (male)',@m:=@m+1,@f:=@f+1) As position
FROM Products p,
(SELECT @m:=0,@f:=0) x
WHERE `OFFER` = 1
ORDER BY position, `GENDER` DESC