2012-04-10 4 views
0

MYSQL에서 SQL로 코드를 변경하려고하는데 오류가 발생했습니다 (SQL 구문 '제한').MYSQL - SQL 업데이트 제한

그래서 내 쿼리를 변경하고 "TOP"으로 업데이트하려고 시도했지만 SELECT로만 작동하는 것 같습니다. 그래서

, 나는이 MYSQL 쿼리를 변경하는 방법 :

+0

내가'SQL 구문 'Limit''이 완료되었음을 의심 오류? 그리고 그 문제는 무엇입니까? 나에게는 쿼리가 작동하지 않는다고 생각하는 쿼리가있는 것 같습니다. 문제는 무엇입니까? – Nanne

+1

$ fct를 인쇄하면 쿼리는 어떻게 생깁니 까? – Jim

+0

어떤 SQL Server 버전을 사용하고 있습니까? 내가 본 문서에서는 TOP에 UPDATE를 사용할 수 있다고 명시하고 있습니다. 단순히 작동하지 않습니까, 아니면 오류 메시지가 나타 납니까? –

답변

5

그것은 당신의 쿼리의 버전을 매우 분명하지 않다

$fct="UPDATE users SET STREAM_TITRE = '$STREAM_TITRE', STREAM_URL = '$STREAM_URL', STREAM_DESC = '$STREAM_DESC', STREAM_GENRE = '$STREAM_GENRE' WHERE ID = '$IDSESS'"; 

감사 : 여기

$fct="UPDATE `users` SET `STREAM_TITRE` = '$STREAM_TITRE',`STREAM_URL` = '$STREAM_URL',`STREAM_DESC` = '$STREAM_DESC',`STREAM_GENRE` = '$STREAM_GENRE' WHERE `ID` =$IDSESS LIMIT 1"; 

내 제한없이 SQL 코드입니다 어떤 DBMS에서 작동하는지 그리고 그렇지 않은지 여부

ID이 char 또는 varchar 유형 인 경우 LIMIT 버전에서 일부 따옴표가 누락되었습니다. MySQL은 매우 까다 롭고하지 않고 있지만 당신과 함께 또는 따옴표없이 많은 문제가되지 않습니다

$fct = " 
    UPDATE users 
    SET STREAM_TITRE = '$STREAM_TITRE' 
    , STREAM_URL = '$STREAM_URL' 
    , STREAM_DESC = '$STREAM_DESC' 
    , STREAM_GENRE = '$STREAM_GENRE' 
    WHERE ID = $IDSESS    --<-- this should be '$IDSESS' , right? 
            ----- or $IDSESS , depending on the datatype 
    LIMIT 1 
     "; 

참고 : MySQL과 PostgreSQL을에 LIMIT n 작품,하지만 다른 DBMS있다. 또한 ID이 아마도 테이블의 기본 키일 수 있기 때문에 실제로는 필요하지 않다고 생각합니다. 당신은 SQL-서버 MySQL에서 문을 변환하려는 경우

, 당신은 역 인용 부호를 사용하고 LIMIT 1TOP (1)로 대체 안 :

$fct = " 
    UPDATE TOP (1) users 
    SET STREAM_TITRE = '$STREAM_TITRE' 
    , STREAM_URL = '$STREAM_URL' 
    , STREAM_DESC = '$STREAM_DESC' 
    , STREAM_GENRE = '$STREAM_GENRE' 
    WHERE ID = $IDSESS    
     "; 
+0

감사합니다. SQL 버전을 찾으면 완벽 할 것이지만 감사합니다;) –

+0

"SQL 버전"이란 무엇입니까? Microsoft SQL Server? –