SQL 在行中的第一个空列中插入 MySQL 错误

Posted

技术标签:

【中文标题】SQL 在行中的第一个空列中插入 MySQL 错误【英文标题】:SQL Insert in first empty column in a row MySQL error 【发布时间】:2013-12-06 11:18:51 【问题描述】:

我四处寻找解决问题的方法,但在网上找不到类似的东西。 我正在编写一个 SQL 脚本以在一行的第一个空列中插入值。

我收到这个 mysql 错误:

错误:您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 'WHERE ID = 89' 附近使用的正确语法。

这是我的脚本。我正在通过尝试将 52 插入 ID=89 的行中的第一个空列进行测试。

$item3 = 52;

$sql="insert into TABLENAME set 
GAME1 = case when GAME1 = '' then $item3 else GAME1 end,
GAME2 = case when GAME2 = '' and GAME1 <> '' then $item3 else GAME2 end,
GAME3 = case when GAME3 = '' and GAME1 <> ''and GAME2 <> '' then $item3 else GAME3 end
WHERE ID = 89 ";

谢谢。

【问题讨论】:

好吧,实际上我想说问题不在于您的查询,而在于您的数据库设计。如果您有一对多关系,则不应将表中的字段相乘以匹配“多”限制,而应将这些记录写入单独的表中。 INSERT 用于添加新行,UPDATE 用于修改现有行。在INSERT 中使用WHERE 没有意义。 你可以先开始学习基础知识。 【参考方案1】:

使用update

$sql="update TABLENAME set 
GAME1 = case when GAME1 = '' then $item3 else GAME1 end,
GAME2 = case when GAME2 = '' and GAME1 <> '' then $item3 else GAME2 end,
GAME3 = case when GAME3 = '' and GAME1 <> ''and GAME2 <> '' then $item3 else GAME3 end
WHERE ID = 89 ";

【讨论】:

以上是关于SQL 在行中的第一个空列中插入 MySQL 错误的主要内容,如果未能解决你的问题,请参考以下文章

R数据框复制不同空列中的值

如何从视图中的可为空列中驱动布尔字段? (SQL 服务器)

将 pandas Series 或 DataFrame 列插入现有 Excel 文件的第一个空列(使用 OpenPyXL?)

在一列中获取火花数据帧的所有非空列

Scala DataFrame,将非空列的值复制到新列中

SQL/C#:DataTable 到存储过程(从用户定义的表类型插入)- 转换错误