mysql - 错误 1064 - MySQL 中 INSERT 语句的 SQL 语法

标签 mysql mysql-error-1064

我正在尝试此查询,但没有成功。

ERROR: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= (SELECT id_university FROM university WHERE university = "xxx") , `singl' at line 2

INSERT INTO `database_charts`.`university_has_single_user` (
        `university_id_university` = (SELECT id_university FROM university WHERE university = "xxx") , 
        `single_user_users_id_user` = (SELECT users_id_user FROM single_user WHERE users_id_user = "1" ), 
        `course_id_course`= (SELECT id_course FROM course WHERE course = "yyy"),
        `year`= "2000" ) 

如何解决这个问题?

最佳答案

除非 MySQL 支持非常奇怪的语法,否则您不会这样编写 INSERT 语句。它采用以下形式:

INSERT INTO <TableName> (<Column1,Column2,..,ColumnN>) VALUES (<Value1,Value2,..,ValueN>)

所以你会有

INSERT INTO database_charts.university_has_single_user (
  university_id_university, 
  single_user_users_id_user, 
  course_id_course,year) 
VALUES (
  (SELECT id_university FROM university WHERE university = 'xxx'),
  (SELECT users_id_user FROM single_user WHERE users_id_user = '1' ),
  (SELECT id_course FROM course WHERE course = 'yyy'),
  '2000'
)

警告:我不确定 MySQL 是否会真正处理每个列值的嵌套 SELECT,但上面是 INSERT 语句通常的编写方式。

关于mysql - 错误 1064 - MySQL 中 INSERT 语句的 SQL 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6334309/

相关文章:

mysql - 每组前 N 行仅获得 1 行

mysql - 我试图在 phpmyadmin 中运行此查询,但它显示错误

mysql - 优化 mysql/postgresql 的创建和更新

mysql - 错误: bundle install failed for mysql gem

c# - 尝试创建一个包含 2 个插入的存储过程

mysql - sunspot solr 未定义字段类型

C# 我的 datagridview 列显示错误的年份

mysql - MySql 中的 DELETE TRIGGER 抛出错误 1064

sql - MySQL 存储函数创建错误 ERROR 1064 & 1327

sql - 是否可以根据条件以两种不同的方式对 SELECT 查询的结果进行排序?