Originariamente inviato da piero.mac
codice:
(SELECT nome, descrizione, 
MATCH (nome) AGAINST('+nokia +n93' IN BOOLEAN MODE) as score
FROM tabella 
WHERE MATCH (nome) AGAINST('+nokia +n93' IN BOOLEAN MODE) 
ORDER BY score DESC
LIMIT 0, ....)
UNION
(SELECT nome, descrizione,
MATCH (descrizione) AGAINST('+nokia +n93' IN BOOLEAN MODE) as score
FROM tabella WHERE MATCH (descrizione) AGAINST('+nokia +n93' IN BOOLEAN MODE) ORDER BY score DESC
LIMIT 0, .... )
occhio a UNION per come fa poi gli ordinamenti. verifica che siano corretti. Usando LIMIT dovresti andare bene. I nomi dei campi sono identici per entrambe le query. Se non va UNION fanne due di queries. Cambia nulla.
Scusami piero.mac ma cosi' facendo non estrae ad esempio 30 della prima query altri 30 della seconda e se ci sono doppioni non me ne ritorna piu' 60 ma meno...... boh
non conviene mettere ad esempio:

codice:
(SELECT * FROM tab WHERE condizioni)
UNION
(SELECT * FROM tab WHERE condizioni)
LIMIT 0,30
è sbagliato questo esempio??