SET @UserID_In = 1;
Select * FROM EarnedTransaction AS ETMain WHERE ETMain.UserID = @UserID_In
AND ETMain.ID = ( SELECT MAX(ID) FROM EarnedTransaction AS ETSub WHERE ETSub.UserID =
ETMain.UserID AND ETSub.TransactionType = 'Buying' AND ETSub.CompleteDate IS NULL )
AND ETMain.ID = ( SELECT MAX(ID) FROM EarnedTransaction AS ETSub WHERE ETSub.UserID =
ETMain.UserID );
返回 34 15 购买 1500 1428101231 1 2014-09-29 10:09:55
但是:
SET @UserID_In = 1;
Delete FROM EarnedTransaction AS ETMain WHERE ETMain.UserID = @UserID_In
AND ETMain.ID = ( SELECT MAX(ID) FROM EarnedTransaction AS ETSub WHERE ETSub.UserID =
ETMain.UserID AND ETSub.TransactionType = 'Buying' AND ETSub.CompleteDate IS NULL )
AND ETMain.ID = ( SELECT MAX(ID) FROM EarnedTransaction AS ETSub WHERE ETSub.UserID =
ETMain.UserID );
返回:
[Err] 1064 - 您的 SQL 语法有错误;
请查看与您的 MySQL 服务器版本相对应的手册,了解在 AS ETMain WHERE ETMain.UserID = @UserID_In 附近使用的正确语法
AND ETMain.ID = ( SELECT MAX(ID)
在第 1 行
最佳答案
试试这个删除查询(没有“删除表”的别名):
SET @UserID_In = 1;
DELETE FROM EarnedTransaction
WHERE UserID = @UserID_In
AND ID = (SELECT MAX(ID)
FROM EarnedTransaction AS ETSub
WHERE ETSub.UserID = UserID
AND ETSub.TransactionType = 'Buying'
AND ETSub.CompleteDate IS NULL)
AND ID = (SELECT MAX(ID)
FROM EarnedTransaction AS ETSub
WHERE ETSub.UserID = UserID );
关于MySql select 语句有效但不能删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096456/