Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多个表上使用匹配的SQL(带联接)_Sql - Fatal编程技术网

在多个表上使用匹配的SQL(带联接)

在多个表上使用匹配的SQL(带联接),sql,Sql,这会产生错误“找不到与列列表匹配的全文索引” 但这两种方法都会奏效 mysql_query("SELECT a.about,b.title,b.article,b.description FROM about a JOIN articles b ON b.user_id=a.user_id WHERE MATCH(b.title,b.article) AGAINST ('$search') "); 所有列上的文本索引都已激活。在b.title,b.article上没有全文索引 将您的查

这会产生错误“找不到与列列表匹配的全文索引”

但这两种方法都会奏效

mysql_query("SELECT a.about,b.title,b.article,b.description

FROM about a 
JOIN articles b ON b.user_id=a.user_id

WHERE MATCH(b.title,b.article) AGAINST ('$search')

");

所有列上的文本索引都已激活。

b.title,b.article
上没有全文索引

将您的查询用作

mysql_query("SELECT a.about,b.title,b.article,b.description

FROM about a 
JOIN articles b ON b.user_id=a.user_id

WHERE MATCH(b.title) AGAINST ('$search')

");



mysql_query("SELECT a.about,b.title,b.article,b.description

FROM about a 
JOIN articles b ON b.user_id=a.user_id

WHERE MATCH(b.article) AGAINST ('$search')

");
或者在
b.title,b.article
列上建立索引

mysql_query("SELECT a.about,b.title,b.article,b.description

FROM about a 
JOIN articles b ON b.user_id=a.user_id

WHERE MATCH(b.title) AGAINST ('$search')
and
MATCH(b.article) AGAINST ('$search')

");

正如我所说,所有这些列都有全文索引。您需要对多个列进行索引。2列上有一个索引我试过了,但得到了一个语法erorr?为文章创建全文索引(
标题
文章
说明
)对不起,我忘了包括索引名。编辑了我的答案。请再试一次,我必须为每个表单独设置一个匹配语句吗?
CREATE FULLTEXT INDEX t_a_articles_index ON articles (title, article) ...