Mysql 在CS50中学习SQL:RuntimeError:near“IF”:语法错误
我正在尝试创建一个名为stock的表,该表记录某人在购买一定数量的股票后持有的股票数量。这是迄今为止我尝试过的最复杂的SQL代码,我认为我写错了什么。有人能发现错误吗Mysql 在CS50中学习SQL:RuntimeError:near“IF”:语法错误,mysql,cs50,Mysql,Cs50,我正在尝试创建一个名为stock的表,该表记录某人在购买一定数量的股票后持有的股票数量。这是迄今为止我尝试过的最复杂的SQL代码,我认为我写错了什么。有人能发现错误吗 db.execute("IF EXISTS (SELECT * FROM stock WHERE symbol = :symbol AND userid = :userid) UPDATE stock SET (amount = amount + 1) WHERE userid = :userid ELSE I
db.execute("IF EXISTS (SELECT * FROM stock WHERE symbol = :symbol AND userid = :userid)
UPDATE stock SET (amount = amount + 1) WHERE userid = :userid
ELSE INSERT INTO stock (userid, symbol, amount)
VALUES ((SELECT id FROM users WHERE id = :userid),
:symbol, :amount", userid = session["user_id"], symbol = symbol, amount = share_number)
您缺少一个括号
INSERT INTO stock (userid, symbol, amount)
VALUES ((SELECT id FROM users WHERE id = :userid), :symbol, :amount
而不是
从users中选择id,其中id=:可以简单地编写的userid
INSERT INTO stock (userid, symbol, amount)
VALUES (:userid, :symbol, :amount)
mysql中的IF是一个函数IFcondition、value\u IF\u true、value\u IF\u false和not语句IFWelcome to SO!您能为您的特定DBMS mysql、sqlserver、oracle等添加标签吗。。因为有些sql特性非常具体?还有,cs50标签是否正确?