Det finns inget sådant som datorkolumn i MySQL.
Om du vill formatera något värde för att påskynda indexsökningen måste du förmodligen använda någon trigger. Faktum är att jag svarade på nästan samma fråga i morse:se https://stackoverflow.com /a/18047511/2363712 för ett liknande exempel.
I ditt fall skulle det leda till något liknande:
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 kommer du att använda column_1_fmt
för att söka efter värden/sammanfoga på värden som har önskat format.
Angående din särskilda behov (ta bort streck -- från något slags serie-/referensnummer?). Du kanske borde vända på problemet. Lagra dessa värden som kanonisk form (ingen bindestreck). Och lägg till obligatoriska streck vid SELECT
tid.