2016-11-09 2 views
1

에게 제공 : 내가 예를 들어 일반 문자열을 대체 MYSQL : CONCAT에 열 이름을 사용하여() 함수는 나는이 오류가 발생이 쿼리</p> <pre><code>UPDATE `fitment_drums` SET `liters` = CONCAT(`liters`,'.0') WHERE `liters` LIKE '_' </code></pre> <p>이 구문 오류 1064

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''.0') FROM `fitment_drums` WHERE `liters` LIKE '_'' at line 1

. CONCAT ('asdf','.0') 잘 작동합니다. 인수로 select 문을 사용하여 시도한 및 임시 테이블을 사용하여 시도한 :

CREATE TEMPORARY TABLE t1 (SELECT * FROM `fitment_drums` WHERE liters like '_') 
UPDATE `fitment_drums` SET liters = CONCAT(t1.liters,'.0') where t1.id = id 
+2

리터는 숫자 입력란입니까? – grahamj42

+0

그것은 varchar 필드입니다. – qSort

+0

CREATE TABLE 문 다음에 세미콜론이 없습니다. –

답변

1

그래, 그래서 "해결책"을 발견. 시뮬레이션 모드에서 쿼리를 실행하면 위의 오류가 발생합니다. 그래서 테이블을 백업하고 라이브 모드로 쿼리를 실행했습니다. (기록을 위해, 나는 phpMyAdmin을 사용하고있다)

아주 이상하다.

도움을 주신 모든 분들께 감사드립니다.

1

phpMyAdmin을 사용 중이라는 사실을 알았으므로 데이터베이스 연결이 종료되면 임시 테이블이 자동으로 삭제됩니다.

phpMyAdmin의 각 페이지 뷰는 별도의 PHP 요청이며 별도의 데이터베이스 연결입니다.

phpMyAdmin에서 CREATE TEMPORARY TABLE 인 경우 UPDATE을 실행할 때 임시 테이블이 더 이상 존재하지 않습니다.

관련 문제