“where 子句”中的未知列在程序中失败
Posted
技术标签:
【中文标题】“where 子句”中的未知列在程序中失败【英文标题】:Unknown column in 'where clause' failing in procedure 【发布时间】:2021-03-15 15:12:35 【问题描述】:我正在尝试在一个过程中运行以下代码。它是BEGIN
之后程序中的第一行代码
update `deleteRequestsInitial`
SET `mamaID` = (SELECT `id` FROM `love_users`
WHERE `love_users`.`email` = `deleteRequestsInitial`.`Email`);
当我在 phpmyadmin SQL 环境中运行它时,它运行良好。但是当我调用该过程时,我得到了错误:
“where 子句”中的未知列“deleteRequestsInitial.Email”
我浏览了很多关于“未知列”错误的帖子,但建议的解决方法似乎都不适合我。
【问题讨论】:
是的,但我都试过了。 您可以尝试使用连接重写它吗?UPDATE deleteRequestsInitial dri JOIN love_users lu ON lu.email = dri.Email SET dri.mamaID = lu.id
【参考方案1】:
你可能真的在运行这个:
update `deleteRequestsInitial`
SET `mamaID` = (SELECT `id` FROM `love_users`
WHERE `love_users`.`email` = `deleteRequestsInitial.Email`);
或者,该列可能是email
,而不是Email
。
我建议去掉所有的反勾号:
UPDATE deleteRequestsInitial dri
SET mamaID = (SELECT id
FROM love_users lu
WHERE lu.email = dri.Email
);
【讨论】:
同样的错误。是的,我确定Email
的情况;
@KristiPerkins 。 . .那么该列在deleteRequestsInitial
中不存在。
@GordonLinoff 但是为什么它会在 phpmyadmin SQL 环境中运行良好呢? (问题中提到的OP)
@PhilCoulson 。 . .实际上,假设是这两个环境连接到不同的数据库。或者他们中的一个可能会调整查询。以上是关于“where 子句”中的未知列在程序中失败的主要内容,如果未能解决你的问题,请参考以下文章
有一个 mySQL 错误,未知列 where 子句 [重复]