Tôi có các truy vấn sử dụng đối sánh với email bắt đầu không thành công khi tôi chuyển sang innodb vì @ được sử dụng để tìm kiếm các từ cách nhau một khoảng nhất định trong 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>
Hãy thử gói địa chỉ email của bạn như thế này:
SELECT username FROM users WHERE MATCH(user_email) AGAINST('"[email protected]"' IN BOOLEAN MODE);
hoặc thoát:
SELECT username FROM users WHERE MATCH(user_email) AGAINST('\"[email protected]\"' IN BOOLEAN MODE);