sql >> データベース >  >> RDS >> Mysql

メールアドレスを含むMySQLInnoDB全文検索

    InnoDBで特定の距離だけ離れた単語を検索するために@が使用されているため、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>
    

    メールアドレスを次のようにラップしてみてください:

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

    またはエスケープ:

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


    1. 不動産の専​​門家がMicrosoftAccessを使用する方法

    2. Oracleを使用する場合、Fluent NHibernateを使用してバッチフェッチを実装するにはどうすればよいですか?

    3. SYS_CONNECT_BY_PATH関数を使用する場合のOracleORA-30004、

    4. MySQLテーブルにGUIDを保存するにはどうすればよいですか?