簡體   English   中英

MATCH(字段1,字段2)和MATCH(字段1)或MATCH(字段2)之間的區別

[英]Difference between MATCH (field1, field2) and MATCH(field1) OR MATCH(field2)

以下兩個查詢的結果之間有區別嗎?

SELECT *
FROM table1, table2
WHERE
    ( MATCH(table1.row1) AGAINST('searchstring' IN BOOLEAN MODE) )
    OR
    ( MATCH(table2.row2) AGAINST('searchstring' IN BOOLEAN MODE) )


SELECT *
FROM table1, table2
WHERE
    ( MATCH(table1.row1, table2.row2) AGAINST('searchstring' IN BOOLEAN MODE) )

我喜歡第一種方法,因為這使我更容易實現每個領域的排名標准。

是的,第二個查詢是錯誤。

MATCH()函數的參數必須是為其定義了一個全文索引的所有列。

但是不能在多個表上定義索引。 因此,像MATCH(table1.row1, table2.row2)這樣的MATCH(table1.row1, table2.row2)無法工作,因為它引用了來自兩個不同表的列。


如果僅引用同一表中的列,則可以將多個列放在MATCH()函數中。 實際上,如果全文索引是在多個列上定義的,則是強制性的。 請注意,上面我說過,函數的參數必須是全文索引的所有列。

暫無
暫無

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

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