【问题标题】:SQL Insert in first empty column in a row MySQL errorSQL 在行中的第一个空列中插入 MySQL 错误
【发布时间】: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 没有意义。
  • 你可以先开始学习基础知识。

标签: php mysql sql sql-insert


【解决方案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 ";

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多