2013-05-04 3 views
1

선택 쿼리를 업데이트로 변경하는 방법을 잘 모릅니다.strcmp 결과를 사용하여 쿼리 업데이트

셀렉트 쿼리는 다음과 같습니다

SELECT IF (strcmp(`player1`, `player2`) >0, concat(player2, " - ", player1), pair) as GoodPair from scores 

내가 해결하기 위해 노력하고 문제는 페어 필드 지금 같은 순서에없는 쌍의 이름이 들어 있다는 것입니다. 예를 들어, 같은 쌍의 "Bill - Dennis"와 "Dennis - Bill"은 다른 기록에 나타나며 나는 쌍 이름을 항상 "덜"이름으로 지정하여 특정 듀오가 발견 된 시간을 셀 수있게합니다 .

자세한 정보가 필요하면 알려주십시오. 사전에

감사합니다. 당신은 LEASTGREATEST 기능을 사용할 수 있습니다

빌리

+0

새 필드를 업데이트해야합니까, 아니면 player2가 player2보다 작은 경우 player1과 player2를 전환 하시겠습니까? – fthiella

답변

0

는 :

SELECT 
    CONCAT_WS(' - ', LEAST(payer1,player2), GREATEST(player1,player2)) as GoodPair 
FROM 
    scores 

나는 대신 CONCAT의 분리와 문자열을 연결하는 CONCAT_WS를 사용하는 것을 선호하지만,이 특별한 경우에 동일합니다.

업데이트 쿼리를 만들려면,이를 사용합니다 :

: 당신은 그냥 재생기가 player2보다 큰 경우에 player2에 swith를의 재생기를 수행해야하는 경우

UPDATE scores 
SET 
    GoodPair = CONCAT_WS(' - ', LEAST(payer1,player2), GREATEST(player1,player2)) 

이 업데이트 쿼리를 사용할 수 있습니다

UPDATE score 
SET player1=LEAST(player1,player2), 
    player2=GREATEST(player1,player2) 
WHERE 
    player1>player2 

바이올린은 here입니다.

+0

감사합니다. 분명히 언어를 더 공부해야합니다. 나는 가장 적은 기능에 대해서는 몰랐습니다. – Bill

관련 문제