Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL InnoDB Recherche en texte intégral contenant l'adresse e-mail

J'ai eu des requêtes qui utilisaient une correspondance avec un e-mail qui ont commencé à échouer lorsque je suis passé à innodb puisque @ est utilisé pour rechercher des mots à une certaine distance dans InnoDB :

SELECT username FROM users WHERE MATCH(user_email) AGAINST('example@sqldat.com' IN BOOLEAN MODE);
ERROR 1064 (42000): syntax error, unexpected '@', expecting $end

SELECT username FROM users WHERE MATCH(user_email) AGAINST("example@sqldat.com" IN BOOLEAN MODE);
ERROR 1064 (42000): syntax error, unexpected '@', expecting $end
mysql>

Essayez d'envelopper votre adresse e-mail comme ceci :

SELECT username FROM users WHERE MATCH(user_email) AGAINST('"example@sqldat.com"' IN BOOLEAN MODE);

ou échappé :

SELECT username FROM users WHERE MATCH(user_email) AGAINST('\"example@sqldat.com\"' IN BOOLEAN MODE);