sql >> Databasteknik >  >> RDS >> Mysql

MySQL InnoDB Fulltextsökning som innehåller e-postadress

Jag hade frågor som använde matchning mot e-post som började misslyckas när jag bytte till innodb eftersom @ används för att söka efter ord på ett visst avstånd i 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>

Försök att slå in din e-postadress så här:

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

eller flydde:

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


  1. KONTROLLERA BEGRÄNSNING på flera kolumner

  2. Skapa unika slumpmässiga alfanumeriska tecken som är 7 tecken långa

  3. Uppgradering från Django 1.6 (med söder) till 1.8 ändrar inte 'last_login' på användartabellen

  4. LEFT() vs SUBSTRING() i SQL Server:Vad är skillnaden?