sql >> Base de Datos >  >> RDS >> Mysql

MySQL InnoDB Búsqueda de texto completo que contiene la dirección de correo electrónico

Tuve consultas que usaban la coincidencia con el correo electrónico que comenzaron a fallar cuando cambié a innodb ya que @ se usa para buscar palabras a cierta distancia en InnoDB:

SELECT username FROM users WHERE MATCH(user_email) AGAINST('[email protected]' IN BOOLEAN MODE);
ERROR 1064 (42000): syntax error, unexpected '@', expecting $end

SELECT username FROM users WHERE MATCH(user_email) AGAINST("[email protected]" IN BOOLEAN MODE);
ERROR 1064 (42000): syntax error, unexpected '@', expecting $end
mysql>

Intenta envolver tu dirección de correo electrónico así:

SELECT username FROM users WHERE MATCH(user_email) AGAINST('"[email protected]"' IN BOOLEAN MODE);

o escapó:

SELECT username FROM users WHERE MATCH(user_email) AGAINST('\"[email protected]\"' IN BOOLEAN MODE);