計算列<のようなものはありません。 / a> 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
に必要なダッシュを追加します 時間。