2011-10-03 11 views
5

La mia ricerca è sensibile al maiuscolo/minuscolo, ma voglio che sia insensibile al maiuscolo/minuscolo. In MySQL ho il mio database e la tabella impostata su utf8_general_ci. La ricerca è ancora case sensitive. Ho fatto qualche ricerca e sembra che la ragione di questo sia BOOLEAN MODE nella mia domanda. C'è un modo per renderlo insensibile alle maiuscole e minuscole? quindi non importa come scrivo qualsiasi parola con una certa sensibilità, lo farò sempre apparire nei risultati della ricerca?mysql query BOOLEAN MODE Case Sensitivity

SELECT 
     s_cost_sheet.partnumber, 
     s_cost_sheet.description, 
     s_cost_sheet.price, 
     s_cost_sheet.notes 

    FROM s_cost_sheet 
    WHERE MATCH (partnumber, description, price, notes) 
    AGAINST('%".$search."%' IN BOOLEAN MODE) ORDER BY partnumber, description, price, notes ASC"; 

ho testato la ricerca in phpMyAdmin e funziona non importa come un tipo di piastra di parola, può essere piatto, piatto, piatto. Funziona tutto bene, quindi deve essere qualcosa all'interno di questo che sta causando il problema.

+0

E le colonne? Sono anche in utf8_general_ci? – Karolis

+0

sì, sono anche impostati su utf8_general_ci – asar

+0

Penso che senza virgolette questo dovrebbe funzionare bene. Perché usi i simboli delle percentuali? – Karolis

risposta

1

Se una delle colonne è di tipo int o numerico, la ricerca diventa case sensitive. Inoltre non è necessario utilizzare% nella stringa cercata

+0

Sì, questo è corretto. Li ho modificati tutti in VARCHAR anziché utilizzare 2 colonne come decimale. Grazie! – asar

0

provare a cambiare la vostra tavola e colonna utf8_general_ci e non si deve usare % jolly con FULL TEXT Search

RACCOMANDAZIONI Evitare inoltre di utilizzare un sacco di colonne con ORDER BY clausola se avete bisogno di risultati più rapidi.

+0

Ho la tabella e la colonna impostate su utf8_general_ci e agisce comunque in questo modo. – asar