Er bestaat niet zoiets als berekende kolom in MySQL.
Als u een waarde wilt formatteren om het zoeken in indexen te versnellen, zult u waarschijnlijk een trigger moeten gebruiken. Ik heb trouwens vanmorgen bijna dezelfde vraag beantwoord:zie https://stackoverflow.com /a/18047511/2363712 voor een soortgelijk voorbeeld.
In jouw geval zou dat tot zoiets leiden:
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, '-', '');
Nu gebruik je column_1_fmt
om te zoeken naar waarden/meedoen aan waarden met het vereiste formaat.
Over uw speciale behoefte (verwijderen van streepjes -- van een soort serie-/referentienummer?). Misschien moet je het probleem omkeren. Sla die waarde op als canonieke vorm (geen streepje). En voeg vereiste streepjes toe bij SELECT
tijd.