Neexistuje nic takového jako počítaný sloupec v MySQL.
Pokud chcete naformátovat nějakou hodnotu pro urychlení indexového vyhledávání, budete pravděpodobně muset použít nějaký trigger. Ve skutečnosti jsem dnes ráno odpověděl téměř na stejnou otázku:viz https://stackoverflow.com /a/18047511/2363712 pro podobný příklad.
Ve vašem případě by to vedlo k něčemu takovému:
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, '-', '');
Nyní budete používat column_1_fmt
k vyhledání hodnot/připojení k hodnotám v požadovaném formátu.
Pokud jde o vaše zvláštní potřeba (odstranění pomlček -- z nějakého druhu sériového/referenčního čísla?). Možná bys měl problém zvrátit. Uložte tyto hodnoty jako kanonickou formu (bez pomlčky). A přidejte požadované pomlčky na SELECT
čas.