-
Ricerca full text
Buongiorno a tutti.
Ho questo problema:
1-ho creato una tabella
CREATE TABLE `my_i99`.`id` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `titolo` VARCHAR(45) NULL, `note` VARCHAR(45) NULL, `indirizzo` VARCHAR(45) NULL, `latitudine` VARCHAR(45) NULL, `longitudine` VARCHAR(45) NULL, `utente` VARCHAR(45) NULL, `punti` VARCHAR(45) NULL DEFAULT '0', `foto` VARCHAR(45) NULL) ENGINE = MyISAM
2-ho creato un indice
CREATE FULLTEXT INDEX Indice ON i9 (titolo(45),note(45),indirizzo(45),latitudine(45), longitudine(45),utente(45),punti(45),foto(45));
3-creo due righe di prova
INSERT INTO `my_i99`.`i9` (`id`, `titolo`, `note`, `indirizzo`, `latitudine`, `longitudine`, `utente`, `punti`, `foto`) VALUES (NULL, 'tit1', 'not1', 'ind1', '54', '54', 'ute1', '0', 'fot1'), (NULL, 'tit2', 'not2', 'ind2', '76', '76', 'ute2', '0', 'fot2');
3-PROVO UNA RICERCA
SELECT * FROM i9 WHERE MATCH (titolo) AGAINST (‘tit1’);
RISULTATO:
query SQL:
SELECT *
FROM i9
WHERE MATCH (
titolo
)
AGAINST (
‘tit1’
)
LIMIT 0 , 30
Messaggio di MySQL:
#1054 - Unknown column '‘tit1’' in 'where clause'
Non riesco a capire come risolvere il problema. Se qualcuno mi può aiutare.. Grazie!
-
Il fatto che nella prima query la tabella la chiami "id" è solo un errore di battitura?
Che senso ha usare una fulltext search su dei campi di testo da 45 caratteri?
-
Grazie per la risposta saitfainder ..
Si, in realtà la tabella si chiama i9.
Per la seconda domanda..
Non ne ho idea;
quello che devo fare è ricercare in riga "indirizzi" UNA SOLA parola.. per esempio, cercare "turati" e ritrovare "via turati", "via turati 2", "via Turati 6-4", ecc.
Con LIKE non riesco a farlo, mi controlla tutto il contenuto della riga. Googlando trovo la fulltext search e sembra potermi aiutare, però non riesco proprio..
-
Il contenuto esatto di un campo si controlla con l'operatore "uguale", con il LIKE hai invece proprio la possibilità di cercare sottostringhe. Quindi nel tuo esempio sarebbe "WHERE nomecampo LIKE "%turati%".