【发布时间】:2016-02-28 07:17:14
【问题描述】:
我创建了以下数据库:
CREATE TABLE QuizRepo (
User_ID BIGINT AUTO_INCREMENT PRIMARY KEY,
Name TEXT
)
我通过 JDBC 填充它,当我填充它时,我得到:
mysql> select * from QuizRepo;
| User_ID | Name |
| 1 | "XXQuiz"|
当我执行以下命令时,它按预期工作:
mysql> select * from QuizRepo where USER_ID=1;
User_ID | Name |
| 1 | "XXQuiz"|
但是,当我执行以下命令时,我得到了一个奇怪的结果
mysql> select * from QuizRepo where Name="XXQuiz";
Empty set (0.01 sec)
以前有人见过这种情况吗?这怎么可能?也许我将它错误地添加到数据库中(似乎不太可能),但是您可以清楚地看到有一个名为“XXQuiz”的条目,为什么它没有找到它?
【问题讨论】:
-
我的返回正确...您使用的是哪个版本的 mysq?
-
似乎工作正常 => sqlfiddle.com/#!9/630b5/1
-
请记住,在 SQL 中,您应该使用单引号来分隔字符串。 (MySQL 将允许您使用双引号 if ANSI_QUOTES isn't turned on,但最好使用单引号。)我猜对如何完成引用的一个小误解可能会导致您意外地将您的
Name放入数据库中用双引号括起来。