Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara:mencocokkan (mencari ruang) melawan (bergabung dengan kolom dari tabel lain)

Sepertinya Anda perlu menggunakan ekspresi pencocokan FULLTEXT dalam kondisi gabungan Anda.

Saya tidak pernah menggunakan kecocokan teks lengkap dalam kondisi bergabung, jadi saya tidak yakin ini akan berhasil, tetapi secara hipotesis ini mungkin berhasil:

SELECT DISTINCT c.*
FROM corpuses c JOIN searches s 
  ON (MATCH(c.title, c.body) AGAINST (s.term));

Oke saya sudah mencobanya menggunakan definisi tabel Anda dan beberapa contoh data dari manual MySQL. Berikut kueri yang berfungsi (diuji dengan MySQL 5.1.30):

SELECT *
FROM corpuses 
WHERE MATCH(title, body)
  AGAINST ( (SELECT GROUP_CONCAT(term SEPARATOR ' ') FROM searches) 
    IN BOOLEAN 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. Satu kolom tabel SQL, kolom menjadi ID - apakah ini gila?

  2. Cara menampilkan dropdown kedua berdasarkan nilai dropdown sebelumnya menggunakan Javascript

  3. Situs Penyingkatan URL

  4. mysql_fetch_array mengembalikan hanya satu baris

  5. Masalah saat menghubungkan ke host MySQL jarak jauh dengan Rails