2012-03-07 7 views
0

Я не могу заставить этот код работать. Есть идеи, как это изменить? Я попытался добавить () вокруг всего состояния, но это, похоже, не исправить.MySQL несколько раз «Match Against»

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') 

ИЛИ

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

спасибо, это работает нормально. Но знаете ли вы, почему я получаю только повторный набор, когда LNAME, FNAME, ... не менее 3 символов? я могу настроить это? – cmplieger

+0

Pls принимает и голосует за ... – Teja

+0

Да, он использует условие ИЛИ при получении данных ур ... – Teja

0

Вы соответствие их все против одной строки? Вы можете сделать запрос намного короче, объединив их.

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

$ srch-> Consultar ("SELECT *, MATCH (TECNOLOGIA, descriptores, autorTecnologia) ПРОТИВ ('$ Дато В BOOLEAN MODE) КАК Puntuacion ОТ FICHA WHERE MATCH (TECNOLOGIA, descriptores, autorTecnologia) ПРОТИВ ('$ dato' В РЕЖИМЕ BOOLEAN), ИМЕЮЩИЙ puntuacion> 0,5 ");

использование нумерации страниц

$ SQL = $ obj-> consultas ("SELECT *, MATCH (Tecnologia, descriptores) против ('$' паров IN BOOLEAN MODE), как Puntuacion ОТ FICHA ГДЕ MATCH (Tecnologia, descriptores) ПРОТИВ ('$ param' В РЕЖИМЕ BOOLEAN) ИМЕЕТ puntuacion> 0.2 order by puntuacion desc limit $ initReg, $ TamPag ");

Смежные вопросы