2013-02-15 23 views
0

我现在面临的麻烦与对抗的字符串 这里比较表1的值,它与一个字符串比较是什么香港专业教育学院尝试..访问表的价值,并在SQL

DELIMITER $$ 
DROP TRIGGER IF EXISTS comment_trigger$$ 
CREATE TRIGGER comment_trigger AFTER INSERT ON post_comments 
FOR EACH ROW 
DECLARE 
@var_post_id varchar(20); 
BEGIN 
IF (NEW.post_id LIKE 'rmdid%') THEN 
SET @var_post_id=SELECT post_id FROM recommendations WHERE recommendation_id=NEW.post_id; 
IF(@var_post_id LIKE 'recid%') THEN 
UPDATE cooking_category SET last_activity=NEW.comment_time WHERE post_id=NEW.post_id; 
END IF; 
END IF; 
END$$ 
DELIMITER ; 

有人可以帮助我请这个。

+0

是什么问题你有吗? – 2013-02-15 18:01:57

+0

我正在使用select语句获得的值应放入一个变量,以便我可以将其与字符串进行比较。我无法找到一种方法来做到这一点 – Tyranicangel 2013-02-15 18:03:47

回答

0

您可以将变量直接在select声明分配:

SELECT @var_post_id = post_id 
FROM recommendations 
WHERE recommendation_id=NEW.post_id; 

这是首选,但如果你把括号围绕select声明你的语法也将工作:

SET @var_post_id=(SELECT post_id FROM recommendations WHERE recommendation_id=NEW.post_id); 
+0

此后我可以使用像IF(@ var_post_id == “foo”) – Tyranicangel 2013-02-15 18:10:41

+0

它仍然不工作。在行3上显示错误 – Tyranicangel 2013-02-15 18:12:44

+0

我删除了DECLARE语句。它现在不显示任何错误,但它不执行更新 – Tyranicangel 2013-02-15 18:19:08