2016-02-28 38 views
1

我創建了以下數據庫:SQL「SELECT」命令不工作,即使條目是在DB

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"| 

然而,當我做下面的命令,我得到一個奇怪的RESU lt

mysql> select * from QuizRepo where Name="XXQuiz"; 
Empty set (0.01 sec) 

有沒有人見過這種情況?這怎麼可能?也許我錯誤地將它添加到數據庫中(似乎不太可能),但是您可以清楚地看到有一個名爲「XXQuiz」的條目,那麼爲什麼它沒有找到它?

+0

我正在返回正確的...您使用的是哪個版本的mysq? –

+0

似乎正常工作=> http://sqlfiddle.com/#!9/630b5/1 – kkaosninja

+0

請記住,在SQL中,您應該使用單引號分隔字符串。 (如果不打開ANSI_QUOTES,MySQL會讓你用雙引號離開(http://dev.mysql.com/doc/refman/5.7/en/string-literals.html),但最好的做法是使用單引號。)我猜如果引用的一個小錯誤理解可能會導致您將數據庫中的'Name'放入雙引號意外的數據庫中。 –

回答

3

看起來你已經存儲在報價爲好。所以你需要這樣一個: select * from QuizRepo where Name = "\"XXQuiz\"";

或類似。

+1

或者只是不存儲報價 – Strawberry

0

可能是你的名字不是完全匹配檢查這一點,並試圖也

select * from QuizRepo where Name like "%XXQuiz%"; 
相關問題