【问题标题】:How to order "intercalary" rows on MySQL如何在 MySQL 上订购“闰”行
【发布时间】:2015-01-04 21:48:11
【问题描述】:

假设我有 1 张 PRODUCTS 表。并且每个产品都与“性别”相关联(女性(1)或男性(2))

该产品有一个布尔属性,指示该产品是否在 OFFER 中。

解释例子: ID_PRODUCT、GENDER、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,但是“插入”(我不知道用英语怎么说...呵呵)...一男一女一男一女一男.. . 只有优惠。

在本例中,响应显示为:

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?

我可以这样做吗?

提前非常感谢!

【问题讨论】:

    标签: mysql sql-order-by


    【解决方案1】:

    试试:

    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
    

    演示:http://sqlfiddle.com/#!2/6671ea/4

    【讨论】:

    • 不敢相信。呵呵。十分感谢!它正在工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多