【问题标题】:MySQL IF expression returns errorMySQL IF 表达式返回错误
【发布时间】:2014-11-27 13:43:09
【问题描述】:
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 返回一些东西时(换句话说,在第一个查询中播放为 1 时),然后执行最后一个更新流查询。

我在 phpmyadmin 中收到此错误:

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

我以前从未使用过 mysql if conditions,所以,谁能帮帮我?

【问题讨论】:

  • 我了解到if不能在程序外使用。仍然欢迎任何建议。
  • @lp != NULL 不应该是 @lp IS NOT NULL 吗?

标签: mysql if-statement conditional-statements


【解决方案1】:
 UPDATE streams SET duration = (duration + (1412259166 - @lp)) 
 WHERE @lp IS NOT NULL AND id = @sid 

【讨论】:

    猜你喜欢
    • 2013-12-13
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多