2014-02-05 80 views
-3
SELECT IF((SELECT id FROM users where store='XXX' limit 1) IS NULL, null, (SELECT id FROM users where store='XXX' limit 1)) INTO @user_id; 

select @user_id; 

INSERT INTO `orders`(`user_id`)VALUES(@user_id); 

我需要的是当@user_id为NULL时,我不想插入到我的表中。如果我在插入语句上面放置了一个if else语句,我会得到一个错误,指出“语法错误意外IF”。使用IF语句时出现“语法错误意外中频”

+0

这是一个过程或函数还是什么? –

+0

hm ..直接查询执行 – user3275044

+0

为什么不能爆炸(); –

回答

0

使用IFNULL功能,这样一来:

SELECT IFNULL(condition, value_if_condition_is_null) 

在您的查询,像:

SELECT IFNULL((SELECT id FROM users where store='XXX' limit 1), (SELECT id FROM users where store='XXX' limit 1))) INTO @user_id; 
+0

感谢您的回复。 我需要检查一个条件,并做一个行动取决于不是null。 像这样,请尝试: 选择'xxx'到@user_id; if(@user_id不为空) 然后 选择1即可; end if; – user3275044

+0

这是在答案︰SELECT IFNULL(condition,value_if_condition_is_null) –

+0

或只是选择,在您的应用程序代码检查是否为空或空查询结果,并写和如果...其他... –