1
我試圖用MATCH ... AGAINST
WHERE
子句過濾一些數據。但我得到以下錯誤:在使用IN BOOLEAN模式時找不到FULLTEXT索引
Can't find FULLTEXT index matching the column list
這是一個查詢我執行:
SELECT PAR.idPartij,
PAR.Partijnaam,
PRO.Productnaam,
PER.Perceel,
R.Ras,
PAR.TagNR
FROM Partij AS PAR
LEFT OUTER JOIN Product AS PRO ON PAR.idProduct = PRO.idProduct
LEFT OUTER JOIN Ras AS R ON PAR.idRas = R.idRas
LEFT OUTER JOIN Klasse AS K ON PAR.idKlasse = K.idKlasse
LEFT OUTER JOIN Perceel AS PER ON PAR.idPerceel = PER.idPerceel
LEFT OUTER JOIN Maat AS M ON PAR.idMaat = M.idMaat
LEFT OUTER JOIN Teler AS T ON PAR.idTeler = T.idTeler
LEFT OUTER JOIN Handelshuis AS H ON PAR.idHandelshuis = H.idHandelshuis
LEFT OUTER JOIN Behandeling AS BH ON PAR.idBehandeling = BH.idBehandeling
WHERE PAR.Actief <> 0
AND (
MATCH(PAR.idPartij) AGAINST ('%1423%' IN BOOLEAN MODE)
OR MATCH(PAR.Partijnaam) AGAINST ('%1423%' IN BOOLEAN MODE)
OR MATCH(PRO.Productnaam) AGAINST ('%1423%' IN BOOLEAN MODE)
OR MATCH(PER.Perceel) AGAINST ('%1423%' IN BOOLEAN MODE)
OR MATCH(R.Ras) AGAINST ('%1423%' IN BOOLEAN MODE)
OR MATCH(PAR.TagNR) AGAINST ('%1423%' IN BOOLEAN MODE)
)
ORDER BY PAR.idPartij
正如你所看到的,我使用了AGAINST
內IN BOOLEAN MODE
由Dan Grossman說來克服這個問題,但它不工作。
我錯過了什麼,或者我是否完全錯誤?
一個小側面說明,選擇(因此比賽的一部分)在PHP動態創建
您是否爲這些表上的指定字段創建了全文索引? –
@AbhikChakraborty不,我沒有。我認爲「IN BOOLEAN MODE」會克服這一點。另外,當我創建這些索引。它會搞砸任何其他索引(如在ID的例如...) – Mathlight
有很多因素,爲什麼在布爾模式不像你的MySQL版本,存儲引擎等工作。但強烈建議您使用全文索引,當你正在做'匹配..反對'。現在到了這一點,它會混淆其他索引,不,它不會是你的ID是主鍵和它的始終索引。您也可以使用其他列的常規索引。 –