Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql-Suche behandelt Perioden wie Leerzeichen

Anstatt das Feld zu ersetzen, wie andere Antworten vorschlagen, können Sie den Suchbegriff ersetzen . Auf diese Weise könnte MySQL immer noch einen Index auf field1 verwenden . Angenommen, die Punkte stehen immer anstelle von Leerzeichen

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

Wenn Sie ohne Punkte visualisieren möchten, können Sie im SELECT die umgekehrte Ersetzung vornehmen Teil auch:

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

Oder Sie können sogar erwägen, Ihre DB zu aktualisieren, anstatt sich damit herumzuschlagen:

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