Non esiste colonna calcolata in MySQL.
Se desideri formattare un valore per accelerare la ricerca nell'indice, probabilmente dovrai utilizzare un trigger. In effetti, stamattina ho risposto quasi alla stessa domanda:vedi https://stackoverflow.com /a/18047511/2363712 per un esempio simile.
Nel tuo caso, ciò porterebbe a qualcosa del genere:
CREATE TABLE `table_a`(`column_1` VARCHAR(255), ... ,
`column_1_fmt` VARCHAR(255),
INDEX(`column_1_fmt`));
CREATE TRIGGER ins_table_a BEFORE INSERT ON `table_a`
FOR EACH ROW
SET NEW.`column_1_fmt` = REPLACE(NEW.column_1, '-', '');
CREATE TRIGGER upd_table_a BEFORE UPDATE ON `table_a`
FOR EACH ROW
SET NEW.`column_1_fmt` = REPLACE(NEW.column_1, '-', '');
Ora utilizzerai column_1_fmt
per cercare valori/unire su valori con il formato richiesto.
Riguardo al tuo bisogni speciali (rimuovendo trattini -- da una specie di numero seriale/di riferimento?). Forse dovresti invertire il problema. Memorizza quei valori come forma canonica (senza trattino). E aggiungi i trattini richiesti in SELECT
tempo.