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('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>

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

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

eller flydde:

SELECT username FROM users WHERE MATCH(user_email) AGAINST('\"example@sqldat.com\"' 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?