2017-12-10 15 views
1

내가 order_user라는 이름의 피벗 테이블이 셀 수 있기 (위해) 때문에, 나는이 테이블에 자동 증가를 설정하려면,하지만 난 테이블에 계산 행으로하지 각 user_id하여이 열을 업데이트 할자동 증가는

다음과 같은 것 :

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

Laravel 또는 MySQL을 사용자 지정 쿼리 시도가 아닌 나를 위해 수행합니다.

+0

하지 뭔가를 변경해야하지만, 쿼리, 즉 반환되면 뭔가 당신이 할 것입니다. PHP에서. –

+0

삽입 트리거 이전에 사용할 수도 있습니다. –

+0

@SloanThrasher, mysql이 이것을 원하거나 laravel하고 싶습니다. 내 자신의 쿼리를 사용하고 싶지 않습니다! – Katerou22

답변

1

쿼리 흐름을 제어하려면 2 개의 세션 변수가 필요합니다. 하나는 사용자가 변경되는지, 다른 하나는 주문을 계산하는 것입니다.
당신은 테이블 이름 "orderbyuser"쿼리에서 할 수있는

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

고마워,하지만 나는 내게이 상황에서 중요한 것은 성능 최적화 쿼리를 원한다! – Katerou22

+0

MySql보다 저장 프로 시저가 더 좋거나 PHP의 모든 데이터를 얻고 번호를 매길 수 있습니다.이 쿼리는 신속하며 수십만 개의 데이터로 테스트합니다. –