Au lieu de faire le remplacement sur le champ, comme d'autres réponses le suggèrent, vous pouvez faire le remplacer sur le terme de recherche . De cette façon, MySQL pourrait toujours utiliser un index sur field1
. Supposons que les points soient toujours là à la place des espaces
SELECT field1, field2 FROM table WHERE field1 = REPLACE('user input', ' ', '.')
Si vous voulez visualiser sans points, vous pouvez faire le remplacement inverse dans le SELECT
partie aussi :
SELECT REPLACE(field1, '.', ' '), field2 FROM table
WHERE field1 = REPLACE('user input', ' ', '.')
Ou vous pouvez même envisager de mettre à jour votre base de données, au lieu de vous battre avec :
UPDATE table SET field1 = REPLACE(field1, '.', ' ')