MySQL には計算列のようなものはありません。
インデックス検索を高速化するために値をフォーマットする場合は、おそらく何らかのトリガーを使用する必要があります。実際のところ、私は今朝ほぼ同じ質問に答えました。同様の例については、https ://stackoverflow.com/a/18047511/2363712 を参照してください。
あなたの場合、それは次のようなものになります:
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, '-', '');
ここcolumn_1_fmt
で、値の検索/必要な形式の値の結合に使用します。
あなたの特別な必要性について(ダッシュを削除する- ある種のシリアル/参照番号から?)。たぶん、問題を逆にする必要があります。これらの値を標準形式 (ダッシュなし) として保存します。必要なダッシュをSELECT
随時追加します。