我正在构建一个Mysql全文搜索,我有4个表来搜索。当我在搜索查询中只使用单个表时,它可以工作,但是当我在查询中使用多个表时,它不起作用。我也不想在查询中使用UNION ALL,因为我使用复选框选择选项来执行单个或多个表中的搜索。Mysql全文搜索多表的查询修改
MySQL查询多表不工作。
$sqlquery = mysql_query("(SELECT * FROM table1, table2, table3, table4 WHERE MATCH (pflink, title) AGAINST ('%$keyword*%' IN BOOLEAN MODE))ORDER by pflink desc, $orderby $sortby LIMIT $rowsperpage OFFSET $offset ")or die (mysql_error());
它给了我错误Column 'pflink' in where clause is ambiguous
使用单表查询工作。
$sqlquery = mysql_query("(SELECT * FROM table1 WHERE MATCH (pflink, title) AGAINST ('%$keyword*%' IN BOOLEAN MODE))ORDER by pflink desc, $orderby $sortby LIMIT $rowsperpage OFFSET $offset ")or die (mysql_error());
的Html代码复选框
<input name="all-tables" type="checkbox" value="true" checked="checked" id="check-all" >
<input name="table1" type="checkbox" value="true" disabled="disabled" >
<input name="table2" type="checkbox" value="true" disabled="disabled" >
<input name="table3" type="checkbox" value="true" disabled="disabled" >
<input name="table4" type="checkbox" value="true" disabled="disabled" >
请提出任何可能的方式来修改这个查询,使之成为多个表工作。
谢谢。
,因为你的mysql引擎发生了混乱,为这台pflink属于:) – WatsMyName 2012-08-10 08:35:17
@Sabin pflink和标题中的所有表,其实所有的表结构相同,但不同的值。 – 2012-08-10 08:36:27
我希望你已经在每个表格上定义了索引。同样,如果您拥有所有具有相同结构的表,pflink仍然不明确,因为您尚未定义pflink引用的表。此外,到目前为止,我知道,全文搜索将无法在多个表中使用。对于类似的讨论http://stackoverflow.com/questions/1241602/mysql-match-across-multiple-tables – WatsMyName 2012-08-10 08:48:31