MySQL Como converter varchar (latitude, longitude) para Decimal fields?

No mysql eu tenho um varchar contendo latitude e longitude fornecidas pelos mapas do Google. Preciso ser capaz de consultar com base em um valor de caixa delimitadora, mas não preciso dos recursos geográficos disponíveis agora. Eu estou tentando preencher 2 novos campos decimais com os valores decimais encontrados no varchar. Aqui está a consulta que estou tentando usar, mas o resultado são todos os valores arredondados nos novos campos.

Dados de amostra:

'45.390746926938185, -122.75535710155964',
'45.416444621636415, -122.63058006763458'

Criar a tabela:

CREATE TABLE IF NOT EXISTS `cameras` (
  `id` int(11) NOT NULL auto_increment,
  `user_id` int(75) NOT NULL,
  `position` varchar(75) NOT NULL,
  `latitude` decimal(17,15) default NULL,
  `longitude` decimal(18,15) default NULL,
  `address` varchar(75) NOT NULL,<br />
  `date` varchar(11) NOT NULL,<br />
  `status` int(1) NOT NULL default '1',
  `duplicate_report` int(11) NOT NULL default '0',
  `missing_report` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `user_id` (`user_id`),
  KEY `status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1050 ;

SQL:

UPDATE cameras
SET latitude = CAST( (substring(position,1,locate(',',position))) AS DECIMAL(17,15) ),
    longitude = CAST( (substring(position,locate(',',position)+1)) AS DECIMAL(18,15) )

Tentativa alternativa de SQL:

UPDATE cameras
SET latitude = CONVERT( (substring(position,1,locate(',',position))), DECIMAL(17,15) ),
    longitude = CONVERT( (substring(position,locate(', ',position)+1)), DECIMAL(18,15) )

Os valores de campo resultantes são para ambos os cenários:

45.000000000000000 and -122.000000000000000
AND
45.000000000000000 and -122.000000000000000

Alguém pode ver o que estou fazendo errado? Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion