尝试检查名称是否存在(在另一张表中),并一步添加到插入查询中。我发现如果提交的empNum不在User数据库中,则查询错误:列'lastName'不能为null。是否可以在子查询中使用if语句,如下所示?
INSERT INTO Password_Reset (empNum, lastName, fromIP, dateReset)
VALUES (34567,
IF(SELECT COUNT(*) FROM User WHERE empNum = 34567, SELECT lastName FROM User WHERE empNum = 34567, '---'),
'192.168.1.1',
NOW())
最佳答案
您的子查询应该在括号中:
IF( (SELECT COUNT(*) FROM User WHERE empNum = 34567),
(SELECT lastName FROM User WHERE empNum = 34567),
'---'),
您可以通过许多其他方法来完成与别人已经提到的相同的操作,但是您的版本在添加必需的“()”之后也可以使用。
关于mysql - 可以在mysql子查询中使用IF吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13823834/