我正在構建一個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