나는 단순 변환을 시도하고있다 - 최적화를 향상시키기 위해 경도 값 (예 : "-1.234"에서 -1.234)이 포함 된 mysql varchar 열.MySQL의 varchar를 숫자로
Error Code: 1366. Incorrect decimal value: '' for column '' at row -1
오류를 복구하기 위해 만들어
대상 열이된다 :
FLOAT(6,4)
and null allowed.
UPDATE latlng_data SET lng_copy = CAST(lng AS DECIMAL(6,4));
가 만났다 :
나는 마지막 시도 읽고이를 읽고 아무것도 작동했다
왜 mysql 오류 메시지는 쓸모가 없습니다.
에 이어 'dognose'조언 (아래) 내가 사용하고 있습니다 :
UPDATE latlng_data SET lng='999.9999' where lng='';-- to give invalid lng in this case
후 다음 (가 원본보다 실적이 이름을 목표로) 및 복사 데이터 필드를 증가 :
UPDATE latlng_data SET lng_copy = CAST(lng AS DECIMAL(7,4));
이 나타납니다 mysql cmd에서 Workbench 시간 초과로 필요하지만 다음을 사용 :
show full processlist;
은 여전히 실행 중임을 보여줍니다. 가장 좋은 모니터는 cmd입니다.
'CAST를 ('- 1.234'AS 진수 (6,4))' lng_copy의 모든 값에 값이 있는지 확인하고 십진수 (6,4)로 변환 할 수 있습니다. 그 중 하나처럼 보이게됩니다. @JasonSec은 – JasonSec
입니다. 참조 : http://dev.mysql.com/doc/refman/5.6/en/cast-functions.html 가능한 속담 : http://stackoverflow.com/questions/18705119/mysql-how-to-convert-varchar- 위도 - 경도 - 십진수 필드 –
'UPDATE latlng_data SET lng_copy = lng * 1' * ...* – dognose