2012-03-07 70 views
0

我無法讓此代碼正常工作。任何想法如何改變?我試着在整個條件下添加(),但似乎並沒有解決它。MySQL鏈多個「匹配」

SELECT * FROM clients WHERE 
     MATCH(LNAME) AGAINST('aaaa') OR 
     MATCH(FNAME) AGAINST('aaaa') OR 
     MATCH(MAIL) AGAINST('aaaa') OR 
     MATCH(TEL) AGAINST('aaaa') 

回答

2
SELECT * FROM `clients` WHERE 
     MATCH(`LNAME`) AGAINST('aaaa') OR 
     MATCH(`FNAME`) AGAINST('aaaa') OR 
     MATCH(`MAIL`) AGAINST('aaaa') OR 
     MATCH(`TEL`) AGAINST('aaaa') 

OR

SELECT * FROM `clients` WHERE MATCH(`LNAME`,`FNAME`,`MAIL`,`TEL`) AGAINST('aaaa'); 
+1

謝謝,這工作正常。但是你有什麼想法,爲什麼當LNAME,FNAME ......至少有3個字符時,我只能得到retun?我可以調整嗎? – cmplieger 2012-03-07 00:38:58

+0

請接受並投票... – Teja 2012-03-07 00:40:05

+0

是的,它檢索我們的數據時使用OR條件... – Teja 2012-03-07 00:40:39

0

你匹配所有的人都對一個字符串?您可以通過組合它們來縮短查詢時間。

SELECT * FROM `clients` WHERE 
    MATCH(`LNAME`,`FNAME`,`MAIL`,`TEL`) AGAINST('aaaa') 
0

$ srch-> consultar(「SELECT *,MATCH(TECNOLOGIA,descriptores,autorTecnologia)AGAINST('$拿督IN BOOLEAN MODE)AS分數。數據表FROM WHERE MATCH(TECNOLOGIA,descriptores,autorTecnologia)反對( '$ dato'在BOOLEAN模式)具有> 0.5「);

分頁使用

$ SQL = $ obj-> consultas(「SELECT *,MATCH(TECNOLOGIA,descriptores)AGAINST( '$ PARAM' IN BOOLEAN MODE)AS分數。數據表FROM WHERE MATCH(TECNOLOGIA,descriptores) AGAINST('BOOLEAN模式下的$ param')具有puntuacion> 0.2 order by puntuacion desc limit $ initReg,$ TamPag「);