Un replace dans un replace
Bonjour,
Je vous explique rapidement, voici ma table
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| CREATE TABLE `idtv4` (
`magasin` varchar(128) NOT NULL,
`broadcaster_id` varchar(128) NOT NULL,
`content_id` varchar(128) NOT NULL,
`filename` varchar(128) NOT NULL,
`title` varchar(128) NOT NULL,
PRIMARY KEY (`content_id`,`filename`),
KEY `index_content_id` (`content_id`),
KEY `index_filename` (`filename`),
KEY `index_title` (`title`),
KEY `index_magasin` (`magasin`,`broadcaster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Liste des commandes'; |
Avec mes données:
Code:
1 2 3 4 5
| magasin,broadcaster_id,content_id,filename,title
MAGASIN,BRD,CAN9997BA,CAN102233.mpg,BA-Garde à vue
MAGASIN,BRD,CAN9997,CAN102232.mpg,Garde à vue
MAGASIN,BRD,CAN9993BA,CAN103280.mpg,BA-Cent jours à Palerme
MAGASIN,BRD,CAN9993HD,CAN103279.mpg,Cent jours à Palerme HD |
J'aimerais en une seule requête:
- ajouter une 4ème colonne
- que cette colonne réplique la colonne content_id déjà existante
- qu'en copiant la colonne il enlève "CAN"
- qu'en copiant la colonne il enlève "BA"
Ainsi pour avoir:
Code:
1 2 3 4 5
| magasin,broadcaster_id,content_id,filename,title,mid
CANALPLAY,CAN,CAN9997BA,CAN102233.mpg,BA-Garde à vue,9997
CANALPLAY,CAN,CAN9997,CAN102232.mpg,Garde à vue,9997
CANALPLAY,CAN,CAN9993HD,CAN103279.mpg,Cent jours à Palerme HD,9993HD
CANALPLAY,CAN,CAN9993BA,CAN103280.mpg,BA-Cent jours à Palerme,9993 |
Ceci je fais le faire en 3 requêtes séparées, mais impossible pour moi de le faire en une seule et unique requête :(
Voici mes 3 requêtes:
Code:
alter table idtv4 add column mid varchar(128) NOT NULL;
Code:
1 2 3
| UPDATE idtv4
SET mid = REPLACE(content_id, 'CAN', '')
WHERE content_id LIKE '%CAN%'; |
Code:
1 2 3
| UPDATE idtv4
SET mid = REPLACE(mid, 'BA', '')
WHERE content_id LIKE '%BA%'; |