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

MySQL डेटाबेस से समान आइटम खींचने का सबसे अच्छा तरीका

myisam तालिकाओं के लिए आप प्राकृतिक भाषा पूर्ण-पाठ खोज का उपयोग कर सकते हैं:http://dev.mysql.com/doc/refman/5.5/hi/fulltext-natural-language.html

SELECT * FROM article a
LEFT JOIN articletag at ON (at.articleid = a.articleid)
LEFT JOIN tag t ON (at.tagid = t.tagid)
WHERE MATCH (a.title) AGAINST ('some title' IN NATURAL LANGUAGE MODE)
OR MATCH (t.tagtext) AGAINST ('some tag' IN NATURAL LANGUAGE MODE)
GROUP BY a.articleid # if you don't want get duplicates 

आप एक फ़ील्ड में टैग के बारे में अनावश्यक जानकारी जोड़ने के बारे में भी सोच सकते हैं (उदा. <taga><tagb><tagz> ) लेख तालिका में और हर बार टैग जोड़े/हटाए जाने पर इसे अपडेट करें। यह क्वेरी को सरल करेगा और यह तेज़ होना चाहिए:

SELECT * FROM article a
WHERE MATCH (a.title, a.tagtext) AGAINST ('some title or tag' IN NATURAL LANGUAGE MODE)



  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 प्रारंभ नहीं होगा

  3. jdbcTemplate शून्य है और शून्य सूचक अपवाद फेंकता है

  4. MySQL - त्रुटि कोड 1215, विदेशी कुंजी बाधा नहीं जोड़ सकता

  5. अमान्य पैरामीटर संख्या:कोई पैरामीटर बाध्य नहीं थे