गणना कॉलम<जैसी कोई चीज़ नहीं है। /ए> 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
. पर आवश्यक डैश जोड़ें समय।