2014-03-31 6 views
0

데이터를 정렬하는 데 문제가 있습니다. 간단한 쿼리를 사용하여 테이블을 주문하려고하지만 작동하지 않는 것 같습니다. 테이블이 정렬되면 다음을 사용하여 첫 번째 열을 업데이트하려고합니다.필드 값을 기준으로 데이터 정렬

$qry9 = "SELECT * FROM t1 ORDER BY Ranking DESC"; 
$qry10 = "UPDATE t1 SET Level = '1' LIMIT $number"; 

이는 어떤 이유로 작동하지 않습니다. 데이터는 원래 테이블에 입력 된 순서대로 정렬되므로 업데이트가 수행 될 때 순위가 가장 높은 행이 아닌 테이블의 첫 번째 행이 업데이트됩니다. 여기에 어떤 도움이라도 대단히 감사하겠습니다. 미리 감사드립니다.

+0

당신은 전체 코드를 게시 할 수 있습니까? –

답변

2

order by은 쿼리 자체의 결과 집합이 아니라 쿼리 결과 집합에 적용됩니다. MySQL의에서 업데이트와 함께 order by를 사용할 수 있습니다

UPDATE t1 
    SET Level = '1' 
    ORDER BY ranking DESC 
    LIMIT $number; 
2

$ qry9 (SELECT * FROM t1 ORDER BY Ranking DESC";가) 테이블 아무것도 를 정렬하지 않는, 그냥 선택의 결과 집합을 정렬합니다. 당신이 첫 번째 행에 대해 $qry10을 적용 할 따라서 경우에, 당신은뿐만 아니라이 ORDER BY Ranking DESC를 사용해야합니다 :

$qry10 = "UPDATE t1 SET Level = '1' ORDER BY Ranking DESC LIMIT $number"; 
관련 문제