sql >> Databáze >  >> RDS >> Mysql

MySQL InnoDB Fulltextové vyhledávání obsahující e-mailovou adresu

Měl jsem dotazy, které používaly shodu s e-mailem, které začaly selhávat, když jsem přešel na innodb, protože @ se používá k hledání slov v určité vzdálenosti od sebe v 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>

Zkuste svou e-mailovou adresu zabalit takto:

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

nebo uniklo:

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


  1. Příklady PLSQL kurzorů – Explicitní, implicitní a referenční kurzory

  2. #1214 - Použitý typ tabulky nepodporuje FULLTEXTOVÉ indexy

  3. MariaDB JSON_VALUE() vysvětleno

  4. Jak nastavit řazení pomocí mysqli?