sql >> Databasteknik >  >> RDS >> Mysql

Mysql Search Behandla perioder som mellanslag

Istället för att göra ersätt på fältet, som andra svar föreslår, kan du göra ersätt på söktermen . På detta sätt kunde MySQL fortfarande använda ett index på field1 . Antag att punkterna alltid finns där istället för mellanslag

SELECT field1, field2 FROM table WHERE field1 = REPLACE('user input', ' ', '.')

Om du vill visualisera utan prickar kan du göra omvänd ersättning i SELECT del också:

SELECT REPLACE(field1, '.', ' '), field2 FROM table 
WHERE field1 = REPLACE('user input', ' ', '.')

Eller så kan du till och med överväga att uppdatera din DB, istället för att slåss med den:

UPDATE table SET field1 = REPLACE(field1, '.', ' ')


  1. SQL Hämta hela raden baserat på minimivärdet för den beräknade kolumnen

  2. Hur man installerar och säkrar MariaDB på Debian 9

  3. Ogiltigt parameternummer, PDO vid dubblettuppdatering misslyckas

  4. Pratar om SQL Server-prestanda flaskhalsar