MySQL IF 表达式返回错误

标签 mysql if-statement conditional-statements

SELECT last_played INTO @lp FROM sr WHERE creator_id = 1 AND playing = 1 LIMIT 1;
SELECT stream_id INTO @sid FROM account_stream WHERE owner = 1 AND enabled = 1 LIMIT 1;
UPDATE sr SET last_played = 1412259166 WHERE creator_id = 1 AND playing = 1 LIMIT 1;
IF @lp != NULL THEN UPDATE streams SET duration = (duration + (1412259166 - @lp)) WHERE id = @sid LIMIT 1; END IF;

我想做的事情:当@lp返回某些内容时(换句话说,当第一个查询中的playing为1时),然后执行最后一个更新流查询。

我在 phpmyadmin 中收到此错误:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的 'IF @lp != 0 THEN UPDATE Streams SETuration = (duration + (1412259166 - @lp)) W' 附近使用的正确语法

我以前从未使用过 mysql if 条件,所以,有人可以帮助我吗?

最佳答案

 UPDATE streams SET duration = (duration + (1412259166 - @lp)) 
 WHERE @lp IS NOT NULL AND id = @sid 

关于MySQL IF 表达式返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26163016/

相关文章:

mysql - 什么时候元组长度太长?

java - else on if 语句没有通过

c++ - 逻辑短路是否不适用于 if-constexpr?

typescript 条件返回值类型?

c# - if block 的重构

mysql - 如何使用分页版本控制检索 MySQL 表行

mysql - 如何创建从表中获取值并更新不同表的触发器

ios - SwiftUI - 根据条件添加导航栏按钮

Java 不会通过 JNDI 数据源在 MySQL 中写入 UTF8 字符

php - 我可以在 if 语句中串联函数并返回单个变量吗?