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

mySQL - utf8 (गैर-अंग्रेज़ी) डेटा में मिलान करने वाला लैटिन (अंग्रेज़ी) फॉर्म इनपुट

एक संभावित समाधान "कलाकार" के बगल में डेटाबेस में एक और कॉलम बनाना होगा, जैसे "artist_normalized"। यहां, तालिका को पॉप्युलेट करते समय, आप स्ट्रिंग का "सामान्यीकृत" संस्करण सम्मिलित कर सकते हैं। फिर कलाकार_सामान्यीकृत कॉलम में खोज की जा सकती है।

एक परीक्षण कोड:

<?php
$transliterator = Transliterator::createFromRules(':: NFD; :: [:Nonspacing Mark:] Remove; :: NFC;', Transliterator::FORWARD);
$test = ['abcd', 'èe', '€', 'àòùìéëü', 'àòùìéëü', 'tiësto'];
foreach($test as $e) {
    $normalized = $transliterator->transliterate($e);
    echo $e. ' --> '.$normalized."\n";
}
?>

परिणाम:

abcd --> abcd
èe --> ee
€ --> €
àòùìéëü --> aouieeu
àòùìéëü --> aouieeu
tiësto --> tiesto

जादू अनुवादक वर्ग द्वारा किया जाता है। निर्दिष्ट नियम तीन क्रियाएं करता है:स्ट्रिंग को विघटित करता है, डायक्रिटिक्स को हटाता है और फिर स्ट्रिंग को कैनोनिकलाइज्ड करता है। PHP में ट्रांसलिटरेटर आईसीयू के शीर्ष पर बनाया गया है, इसलिए ऐसा करने से आप आईसीयू लाइब्रेरी की टेबल पर भरोसा कर रहे हैं, जो पूर्ण हैं और विश्वसनीय।

नोट:इस समाधान के लिए intl . के साथ PHP 5.4 या उच्चतर की आवश्यकता है विस्तार।




  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. CSV फ़ाइल को सीधे MySQL में आयात करें

  3. कैसे समग्र प्राथमिक कुंजी के साथ विरासत पठनीय डेटाबेस तालिकाओं के साथ Django का उपयोग कैसे करें?

  4. SQL डंप से डेटाबेस को पुनर्स्थापित करते समय बाइनरी मोड सक्षम करें

  5. रूबी मणि mysql2 विफल स्थापित करें