user1084605,我尝试复制问题(使用 MySQL 5.1.37 版),但得到的结果与您完全相反。见下文:
mysql> create table test (username varchar(100));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test values ('marco.polo');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM test WHERE `username`='marco.polo';
+------------+
| username |
+------------+
| marco.polo |
+------------+
1 row in set (0.00 sec)
mysql> SELECT * FROM test WHERE `username` LIKE '%.polo%';
+------------+
| username |
+------------+
| marco.polo |
+------------+
1 row in set (0.00 sec)
mysql> SELECT * FROM test WHERE `username` LIKE 'polo';
Empty set (0.00 sec)
根据 MySQL 文档,使用 LIKE 运算符时唯一的特殊字符是“%”(百分比:匹配 0、1 或多个字符)和“_”(下划线:匹配一个且仅一个字符)。
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
一个 ”。” (句点) 对于 MySQL 的 REGEXP 运算符确实具有特殊含义,但它仍应与列中的文字句点匹配。
http://dev.mysql.com/doc/refman/5.0/en/regexp.html
你能复制我上面运行的 SQL 语句并粘贴你的结果作为回复吗?