MySQL执行更新脚本时报错1064 - You have an error in your SQL syntax;
在MSSQL执行正常,在MySQL执行报错。
两个表:
card表,字段userid,CardLastSum
Businesslogs表,字段userid,cardusingtimes 、 balance、BusinessTypeID
其中userid字段在两表是一样,想把Businesslogs表最大序号(cardusingtimes)的记录的balance值,更新给card表的CardLastSum字段。
如下语句:
SET CardLastSum = (
SELECT
TOP 1 balance
FROM
Businesslogs
WHERE
Businesslogs.UserID = card.UserID
AND BusinessTypeID NOT IN (1,2)
ORDER BY
CardUsingTimes DESC
)
WHERE
card.UserID IN (
SELECT DISTINCT(UserID)
FROM
Businesslogs
WHERE
BusinessTypeID NOT IN (1,2)
)
执行后,报一个错
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 balance
FROM
Businesslogs
WHERE
Businesslogs.UserID = card.UserID
' at line 3
贴语句少了一行,UPDATE card
还是提示同样的问题
top 1不算mysql的语法吧,应该换成limit
在MSSQL执行正常,在MySQL执行报错。
SELECT
TOP 1 balance
Mysql不支持
SELECT
TOP
替换
select * from 表名 limit 1;