枢轴中的自动增量不是按行计数

时间:2017-12-10 07:45:03

标签: php mysql laravel eloquent laravel-5.5

我有一个名为order_user的数据透视表,我想在此表中设置自动增量,但我希望每列user_id更新此列,而不是按表中的行数更新

这样的事情:

user_id |order_id|count|
--------|--------|-----|-----
    1   |   2    | 1   |
    2   |   4    | 1   | <---
    5   |   2    | 1   |
    1   |   6    | 2   | <---
        |        |     | 

我希望Laravel或MySQL为我这样做,而不是通过自定义查询尝试!

1 个答案:

答案 0 :(得分:1)

您需要2个会话变量来控制查询流程,一个用于了解您的用户是否更改,另外两个用于计算订单。
您需要更改表名“orderbyuser”

SELECT   
  user_id,
  order_id,
  orderCount
FROM
  (SELECT 
    user_id,
    order_id,
    IF(@userId<>user_id, @countId:=1, @countId:=@countId+1) orderCount,
    @userId:=user_id
  FROM 
    orderbyuser, #change table name
    (SELECT @countId:=0, @userId:=null) c
  ORDER BY
    user_id,
    order_id) data