簡體   English   中英

mysql-搜索結果-多個表

[英]mysql - search results - multiple tables

我想編寫一個查詢來搜索多個表(新聞,文章,項目,文件)

在搜索時,我發現了這個

SELECT title, post FROM news WHERE MATCH (title,post) AGAINST ('press');

我對其進行了測試,並且可以正常工作,但是未能將其擴展到多個表。

如何編寫一個查詢以返回多個表的搜索結果?

這是做到這一點的一種方法。 我不確定Match的作用,但是在哪里您也可以使用Match函數

Select Table1.Title, Table2.Post FROM Table1, Table2 WHERE Table1.Title = 'press' AND Table2.Title = 'press'

該查詢將為您提供同時按下兩個表的標題和帖子。

一種方法是使用union

SELECT title, post FROM news WHERE MATCH (title,post) AGAINST ('press')
UNION
SELECT title, post FROM articles WHERE MATCH (title,post) AGAINST ('press')
UNION
SELECT title, post FROM projects WHERE MATCH (title,post) AGAINST ('press')
UNION
SELECT title, post FROM files WHERE MATCH (title,post) AGAINST ('press')

現在,它實際上變成了一個偽表,所有記錄都合並到一個數據集中。

看一下這個查詢,您可以這樣使用-

SELECT *
FROM news t1, articles t2, projects t3, files t4 WHERE MATCH ( t1.title, t1.post)
AGAINST ('press')  or Match(t2.title,t2.post) AGAINST('press')

並在MATCH()函數中設置要搜索的所有列。

您可以嘗試一下,這可能對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM