我有一个需求,我将获取存储在其他表中的where条件 id > 10
或者 amount < 100
.
我使用存储过程来执行一些任务,在其中检索这个where条件并使用它向表中插入一些数据。但它不起作用,可能是因为撇号被附加在前面和后面。
set @whereC = (select FilterCondition from SearchLeads where `SearchLeadID` = sid);
INSERT INTO `JTemporary`
(`ZipID`,`FirstName`,`LastName`,`MemberSince`,
`Address1`,`Phone`,`Email`,`CompanyName`,
`BusPhone`,`Deleted`,`CreatedBy`,`CreateDate`,
`UpdatedBy`,`UpdateDate`)
select `ZipCode`,`FirstName`,`LastName`,`AddDate`,
`AddressLine1`,`HomePhone`,`HomeEmail`,`Employer`,
`BusinessPhone`,'N',loginUserID,now(),
loginUserID,now()
from membertrans where @whereC;
这不管用。当我通过复制那个条件并替换变量来直接应用时,它可以工作,但不能处理变量。
如何做到这一点?
2条答案
按热度按时间2skhul331#
您尚未将任何列置于要与select query column filtercondition匹配的where条件中。如。
我认为这就是问题所在,试试这个也许这会对你有所帮助。
ilmyapht2#
下面是一个在mysql数据库上运行的示例。
我可以把上面的传递称为where子句。
这里的关键显然是set/prepare/execute,这是您需要做的。
我用了这个问题:在mysql中是否可以执行一个字符串?因为我自己的所有示例都是在SQLServer中,所以要推导出上面的一些公式。