2013-02-10 3 views
0

테이블에서 필드 폭 유형 바닥이 있습니다.MySQL SET 쿼리 (x = x - y)

내가 PHP에서 쿼리를 수행 할 때, 나는이 값에서 뺀 값으로, 예를 들어 다른 번호를 원하는가 :

$number = 14.3; 
mysql_query("UPDATE field SET count = count - $number WHERE name = '$name'); 

나는 필요 마이너스 count에서이 $number 만 할 nothig 쿼리합니다. 나는 그것을 괄호에 넣으려고했으나 같은 결과를 보였다.

+0

을 당신은 –

+0

$ 번호 = INTVAL ($ 번호) "로 쿼리를 종료 할 필요가 후 $ '이후 쿼리 내부에'count' = ('count'- $ 번호) –

+0

@Akam를 사용 number '는 처음에는 텍스트 문자열에 놓이기 때문에'PHP'가 어떻게 보는지에 대해 걱정할 필요가 없습니다. 어느 경우 이건 MySQL에 도달 할 때 텍스트 일뿐입니다 – mah

답변

2

COUNT은 예약 키워드이므로 백틱을 추가하십시오. PHP 코드를 큰 따옴표로 닫아야합니다. MySQL Reserved Keywords List

당신이 역 따옴표 사용하려면 don'e 경우

  • mysql_query("UPDATE field SET `count` = `count` - $number WHERE name = '$name'"); 
    

    , 다른 테이블에 별칭을 공급하는 것입니다.

    mysql_query("UPDATE field a SET a.count = a.count - $number WHERE name = '$name'"); 
    
+0

같은 결과 – user2058653

+0

구문도 있습니다 PHP 코드에서 오류가 발생했습니다. 'name ='$ name '의 끝에 큰 따옴표를 추가하십시오. –

+0

큰 따옴표는 중요하지 않습니다. 모든 항목이 없어도 완벽하게 작동합니다. 예를 들어 개수에서 1을 빼면 작동합니다. – user2058653

1

큰 따옴표가 없습니다. 이 시도 :

mysql_query("UPDATE field SET `count` = `count` - $number WHERE name = '$name'"); 
관련 문제