Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    SQL + MySQL: WHERE MATCH

    Volevo fare una ricerca full-text usando IN BOOLEAN MODE con un secondo criterio oltre al "Match". Il problema è che il full-text search funziona, ma se limito la ricerca con un secondo parametro da un messaggio di errore nella query.

    Ecco la query che funziona:
    Codice PHP:
    SELECT FROM miatabella WHERE MATCH (campo1campo2campo3AGAINST ('$miavariabile' IN BOOOLEAN MODEORDER BY campo1 
    Vorrei, invece, limitare la ricerca dove il "campo1" è uguale a "lua", ad esempio. Ho provato senza sucesso con
    Codice PHP:
    SELECT FROM miatabella WHERE MATCH (campo1campo2campo3) AND campo1 'lua' AGAINST ('$miavariabile' IN BOOOLEAN MODEORDER BY campo1 
    Mi stampa l'errore
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND
    Luiz

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    http://forum.html.it/forum/showthrea...readid=1219344
    è sbagliata la forma "SELECT * FROM miatabella WHERE MATCH"

  3. #3
    Grazie del link, telegio.
    La query secondo le indicazioni sarebbe
    Codice PHP:
    SELECT *, MATCH (campo1campo2campo3AGAINST ('$miavariabile' IN BOOOLEAN MODE) AS tot FROM miatabella WHERE MATCH (campo1campo2campo3AGAINST ('$miavariabile' IN BOOOLEAN MODEORDER BY tot 
    Ma, insistendo sulla domanda: é possibile escludere alcun record dalla ricerca, tipo quelli
    WHERE campo1 = 'lua'?
    Luiz

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    HO ritrovato in un vecchio sito che feci 3 anni fa questa query, che credo funzioni..
    Codice PHP:
    SELECT FROM tabella WHERE colore '$colore' AND visibile '1' and MATCH(descrizionenomecasaprovenienzaAGAINST ('*$cerca*' IN BOOLEAN MODE
    vedi un po' se ti può essere utile..

  5. #5
    Grande, telegio.
    Ecco la query funzionante:
    Codice PHP:
    SELECT *, MATCH (campo1campo2campo3AGAINST ('$miavariabile' IN BOOOLEAN MODE) AS tot FROM miatabella WHERE campo1 'lua' MATCH (campo1campo2campo3AGAINST ('$miavariabile' IN BOOOLEAN MODEORDER BY tot 
    Curiosamente la condizione dev'essere messa prima del "MATCH(..." Se la metto dopo da errore.
    Grazie!
    Luiz

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    mi ricordo che lo chiesi pure io a suo tempo.. eccola trovata..
    http://forum.html.it/forum/showthrea...readid=1235089
    eh, eh, eh..
    alla prossima..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.