MySql ¿Cómo convertir varchar (latitud, longitud) a campos decimales?

En mysql tengo una varchar que contiene la latitud y la longitud provista por los mapas de Google. Necesito poder realizar consultas basadas en un valor de cuadro delimitador, pero no tengo necesidad de las funciones geográficas disponibles ahora. Estoy intentando rellenar 2 nuevos campos decimales con los valores decimales que se encuentran en el varchar. Aquí está la consulta que estoy tratando de usar, pero el resultado son todos los valores redondeados en los nuevos campos.

Data de muestra:

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

Crear mesa:

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) )

Intento alternativo 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) )

Los valores de campo resultantes son para ambos escenarios:

45.000000000000000 and -122.000000000000000
AND
45.000000000000000 and -122.000000000000000

¿Alguien puede ver lo que estoy haciendo mal? Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta