gpt4 book ai didi

mysql - MATCH (field1, field2) 和 MATCH(field1) OR MATCH(field2) 之间的区别

转载 作者:行者123 更新时间:2023-11-30 00:13:58 26 4
gpt4 key购买 nike

以下两个查询的结果有差异吗?

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() 函数中。事实上,如果全文索引是在多个列上定义的,那么这是强制的。请注意,上面我说过函数的参数必须是全文索引的所有列。

关于mysql - MATCH (field1, field2) 和 MATCH(field1) OR MATCH(field2) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23813263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com