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

क्या एसक्यूएल में हाइफ़न और रिक्त स्थान का इलाज करना संभव है?

जैसा कि किसी ने सुझाव दिया है, आप बस पूर्ण-पाठ खोज को अनुकूलित और उपयोग कर सकते हैं।

यदि आप इस मार्ग को चुनना चुनते हैं, तो आपको आवश्यक फ़ील्ड पर पूर्ण-पाठ खोज सक्षम करने की आवश्यकता होगी।

मुझे लगता है कि आप पोस्ट_टाइटल और पोस्ट_बॉडी (?) की जांच करेंगे, जिसे आपको इसे चलाने की आवश्यकता है;

ALTER TABLE `posts` ADD FULLTEXT KEY `post_search` (`post_title`,`post_body`);

जब ऐसा किया जाता है, तो आपकी खोज क्वेरी को आसानी से संपादित किया जा सकता है;

$sql = "SELECT * FROM `posts` WHERE MATCH(post_title,post_body) AGAINST '$search'";

यदि आप बेहतर मिलान करना चाहते हैं, तो उसके द्वारा उसे एक अंक और क्रम देना भी संभव है, जिसके लिए इसके समान कोड की आवश्यकता होगी:

$sql = "SELECT *, MATCH(post_title, post_body) AGAINST ('{$search}') AS score ".
       "FROM `posts` WHERE MATCH(post_title, post_body) AGAINST ('{$search}') ORDER BY `score` DESC";

---नोट्स

खोज के लिए, आपको यह पता लगाना होगा कि आप कैसे खोज रहे होंगे।

पिछले उदाहरण में मैंने इसी तरह का उपयोग किया था, मेरे पास बस खोज शब्द (नाम "खोज") के लिए एक फॉर्म था जिसके परिणामस्वरूप सर्वर पर $_POST['search'] भेजा जा रहा था।

मैंने तब इस्तेमाल किया;

$search = (array_key_exists('search', $_POST) && is_string($_POST['search'])) ? mysql_real_escape_string($_POST['search'], $c) : FALSE ;
if ($search) {
    // Do the fulltext query requires (See above)
}

चूंकि पूर्ण-पाठ खोज हाइफ़न की अवहेलना कर देगी, इसलिए यदि आप स्कोर किए गए परिणामों का उपयोग करने का विकल्प चुनते हैं, तो आपके पास केवल रिक्त स्थान रह जाते हैं, जो पूर्ण पाठ के लिए बढ़िया काम करता है।




  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. एक्ज़ीक्यूटिव के साथ डेटा मैनिपुलेशन स्टेटमेंट जारी नहीं कर सकता ()

  3. mysql कॉलम डेटा प्रकार को दूसरी तालिका में कॉपी करें

  4. कॉलम पर टिप्पणियां जोड़ने के लिए MySQL तालिका बदलें

  5. Erlang Mysql:SQL इंजेक्शन को कैसे रोकें?