我正在尝试对MySQL执行查询,但它一直告诉我我使用了错误的语法,我尝试搜索MySQL社区,但我没有得到任何有用的东西..我在谷歌上找到的大部分答案都是针对其他人的数据库,但他们为" MySQL"标记它们,但它仍然失败。
这是我试图执行的声明:
$statement = "IF (SELECT ttb_id FROM timetable WHERE ttb_week = $i AND ttb_time = $j) THEN
BEGIN
UPDATE types SET typ_name = '$subj'
WHERE typ_name = 'student';
END;
ELSE
BEGIN
INSERT INTO types VALUES (null,`Yo`);
END;
";
错误:
ERROR: 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 'IF (SELECT ttb_id FROM timetable WHERE ttb_week = 0 AND ttb_time = 0) THEN ' at line 1
我正在使用:
我一直在环顾四周但无济于事,MySQL开发网站上的if条件根本没有帮助..
我是新手,这让我很生气!我尝试过的所有不同的查询都失败了......它永远不是正确的语法。
我在stackExchange和其他网站上找到了很多问题的答案,但它总是错的..我也记得这个结构来自VB.net课程,所以也许这是针对MSSQL的?那么MySQL呢?到目前为止,每个人都列出了类似的结构,并表示它适用于MySQL,我从这个社区的答案中得到了答案*标记为MySQL,他声称它有效。这是我尝试的众多之一。
我真的很感谢你的帮助
答案 0 :(得分:0)
我的第一个想法是你没有将SELECT返回与实际利用条件逻辑的任何东西进行比较。您只是想查看您的查询是否返回值?如果它没有返回值,那么您插入一条新记录,否则您将更新。
也许使用IS NOT NULL或检查来查看select上的计数以查看有多少行并进行比较以查看是否大于0。
IF (SELECT ttb_id FROM timetable WHERE ttb_week = $i AND ttb_time = $j IS NOT NULL) THEN
IF (SELECT COUNT(*) FROM timetable WHERE ttb_week = $i AND ttb_time = $j) > 0 THEN