2015-10-09 26 views
5

Problema: sto utilizzando le versioni più recenti di MySQL e PHP. Stiamo affrontando il problema nella ricerca FULLTEXT di MYSQL. Non funziona con i caratteri speciali.Mysql ricerca di testo completo non funzionante con caratteri speciali

Esempio: Nella tabella domini, campo 'nome' hanno i seguenti tre valori:

1. https://www.google.com 
2. https://www.yahoo.com 
3. https://www.trafe.com 

se sto usando il termine di ricerca https://www.google.com, mostrerà tutti i tre valori di cui sopra come risultato, ma la corretta risposta è https://www.google.com.

Query:

SELECT name 
FROM domains 
WHERE MATCH (name) AGAINST ('https://www.google.com*' IN BOOLEAN MODE); 

risultato effettivo: https://www.google.com

risposta

1

Uso doppio apice: https://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html

Una frase che è racchiuso all'interno di virgolette (“"”) caratteri corrisponde solo le righe che contengono la frase alla lettera, come è stato digitato.

Ad esempio:

SELECT name 
FROM domains 
WHERE MATCH (name) AGAINST ('"https://www.google.com"' IN BOOLEAN MODE); 

Risultato:

name 
https://www.google.com 

Se si vuole veramente che * è possibile cercare '"https://www.google.com*"' (* è messo dentro le virgolette).

Ecco SQL violino: http://sqlfiddle.com/#!9/a6458/6

+0

Grazie. funziona come un fascino. Ma se il valore del campo è '2 - 9' e '+91 8525896584', questi valori non vengono cercati. – raj

+0

@raj, non capisco il tuo problema con '2 - 9' e '+91 8525896584'. Crea una nuova domanda, fornisci una descrizione e un esempio appropriati. –

+0

Ciao @ grzegorz-adam-kowalski, ho spiegato nella domanda separata http://stackoverflow.com/questions/33096544/mysql-fulltext-search-does-not-work-with-hypen-and-plus. si prega di controllare e si prega di avvisare. – raj