Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mySQL में REPLACE फ़ंक्शन के साथ अनुक्रमण स्तंभ

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टाई के साथ सरल MySQL अपडेट रैंक

  2. MySQL में JSON को पार्स करें

  3. Play Framework Anorm &DB हल नहीं हुआ

  4. एमएस एक्सेस के लिए MySQL

  5. डेटा को एक टेबल से दूसरी टेबल में कॉपी करें और अतिरिक्त डेटा जोड़ें