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

php mysql पूर्ण पाठ खोज एकाधिक तालिका आईडी द्वारा शामिल हो गई

आप एक 'भौतिक दृश्य' बना सकते हैं।http://en.wikipedia.org/wiki/Materialized_view

मूल रूप से एक तालिका जो जॉइन का परिणाम है, और उस पर एक पूर्ण टेक्स्ट इंडेक्स बनाएं।

CREATE TABLE materialized (FULLTEXT idx (user_name,department_name)) 
 SELECT u.id,user_name,department_name 
 FROM users u INNER JOIN departments d ON (d.id = dept_id) 

फिर आप इसके बजाय उस टेबल पर क्वेरीज़ चला सकते हैं..

SELECT * FROM materialized WHERE MATCH(user_name,department_name) AGAINST('test' IN BOOLEAN MODE)

लेकिन...

आपको तालिका को समय-समय पर अपडेट करना होगा (या जब अंतर्निहित तालिकाएं अपडेट होती हैं) - सबसे आसान बस DROP है और फिर से बनाएँ - या आप TRUNCATE . का उपयोग कर सकते हैं फिर INSERT INTO ... SELECT ... FROM ... प्रारूप।

(अधिक विस्तृत योजनाओं में 'व्यू' को अपडेट रखने के लिए ट्रिगर्स शामिल हैं, या यहां तक ​​कि बिनलॉग को देखना, और 'व्यू' के खिलाफ अपडेट को फिर से चलाना)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डुप्लिकेट कुंजी अद्यतन पर SQLAlchemy

  2. एकाधिक तालिकाओं से परिणामों के साथ डेटाबेस पूछें?

  3. SOLR दस्तावेज़ों के बारे में प्रश्न और कुछ और

  4. जहां ए =1 और ए =2 0 पंक्ति समस्या देता है - (लघु मैसकल प्रश्न)

  5. mysql अद्यतन विवरण - समान मूल्यों के लिए ओवरहेड?