MySQL“未知专栏”

时间:2011-05-28 23:43:23

标签: mysql

我的数据库表包含电子邮件,用户名和密码列。我正在尝试将这些测试值插入其中,但查询似乎是以一种奇怪的方式解释测试电子邮件的值。 这个查询出了什么问题?

mysql> INSERT INTO `tbl_user`
    -> (`email`, `username`, `password`)
    -> VALUES
    -> (`test1@notanaddress.com`, `Test_User_One`, MD5(`test1`)),
    -> (`test2@notanaddress.com`, `Test_User_Two`, MD5(`test2`))
    -> ;
ERROR 1054 (42S22): Unknown column 'test1@notanaddress.com' in 'field list'

3 个答案:

答案 0 :(得分:5)

尝试使用单引号而不是反引号围绕值,即

mysql> INSERT INTO `tbl_user`
-> (`email`, `username`, `password`)
-> VALUES
-> ('test1@notanaddress.com', 'Test_User_One', MD5('test1')),
-> ('test2@notanaddress.com', 'Test_User_Two', MD5('test2'))
-> ;

反引号用于表示列名称,而单引号(或双引号)将用作值。

答案 1 :(得分:1)

您对值使用了错误的引号。使用简单引号'表示char值。

答案 2 :(得分:0)

反引号分隔字段名称(数据库名称,表名称或列名称)。

使用单引号或双引号来分隔字符串:

INSERT INTO `tbl_user` (`email`, `username`, `password`)
     VALUES ("test1@notanaddress.com", "Test_User_One", MD5("test1")),
            ("test2@notanaddress.com", "Test_User_Two", MD5("test2"));