Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL InnoDB Pesquisa de texto completo contendo endereço de e-mail


Eu tinha consultas que usavam correspondência contra e-mail que começaram a falhar quando mudei para innodb, pois @ é usado para pesquisar palavras a uma certa distância no 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>

Tente envolver seu endereço de e-mail assim:
SELECT username FROM users WHERE MATCH(user_email) AGAINST('"example@sqldat.com"' IN BOOLEAN MODE);

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