2016-04-18 4 views
0

非常に単純なMySQLクエリが機能するのに問題があります。私は、文字列フィールドが特定の値を持つ行のテーブルを検索しています。私が比較している文字列が引用符で囲まれていると、 "Unknown column"というエラーが出ます。文字列が引用符で囲まれていない場合は、「Illegal double error」と表示されます。私が作ってい予期しない二重列または未知列のエラーを返すMySQL文字列比較クエリ

クエリは、(引用符なし)です:

SELECT * FROM `userprofile_userprofile` WHERE `userprofile_userprofile`.`firebaseUID` = 4929e406-9d75-43e2-afa4-fe641f3e85f5 

と(文字列の前後に引用符付き):

SELECT * FROM `userprofile_userprofile` WHERE `userprofile_userprofile`.`firebaseUID` = `4929e406-9d75-43e2-afa4-fe641f3e85f5` 

これは私のテーブルと内容です:

DROP TABLE IF EXISTS `userprofile_userprofile`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `userprofile_userprofile` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `firebaseUID` varchar(100) NOT NULL, 
    `user_id` int(11) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `user_id` (`user_id`), 
    CONSTRAINT `userprofile_userprofile_user_id_59dda034_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; 
/*!40101 SET character_set_client = @saved_cs_client */; 

-- 
-- Dumping data for table `userprofile_userprofile` 
-- 

LOCK TABLES `userprofile_userprofile` WRITE; 
/*!40000 ALTER TABLE `userprofile_userprofile` DISABLE KEYS */; 
INSERT INTO `userprofile_userprofile` VALUES (1,'bdbe350a-9c96-4cc0-94f1-5406a9aaa3e7',17),(2,'4929e406-9d75-43e2-afa4-fe641f3e85f5',18); 
/*!40000 ALTER TABLE `userprofile_userprofile` ENABLE KEYS */; 
UNLOCK TABLES; 
+0

2番目のクエリの文字列の引用符は表示されませんか?あなたはバックティックの引用符を間違えているかもしれない。 – Mihai

+0

引用符を表示するために質問を編集しました。 –

+0

私はそれらがバックティックであると思った – Mihai

答えて

1

文字列の一重引用符('')を入れて、バックティック( ``)に入れないでください:

SELECT * FROM `userprofile_userprofile` 
WHERE `userprofile_userprofile`.`firebaseUID` = '4929e406-9d75-43e2-afa4-fe641f3e85f5'