我有两张桌子:
firstName, lastName, address, email, password
。id, firstName, lastName
。目标是我需要将客户插入到客户表中,只有他/她存在于信用卡表中。所有信息都来自用户的输入。
这是我尝试做的事情:
IF EXISTS
(SELECT first_name, last_name
FROM creditcards
WHERE creditcards.first_name = ?
AND creditcards.last_name = ?
)
BEGIN
INSERT INTO customers(first_name, last_name, address,email,password)VALUES (?,?,?,?,?)
END
我也为七个“?”做了setString。但它抱怨此声明中存在语法错误。
答案 0 :(得分:0)
您不能在MySQL中的函数之外使用IF
控制块。这就是你的语法错误背后的原因。构建查询的方法是SELECT
内的INSERT
,如下所示:
INSERT INTO customers (`first_name`,`last_name`,`address`,`email`,`password`)
SELECT first_name, last_name, address, email, password
FROM (SELECT ? as first_name, ? as last_name, ? as address, ? as email, ? as password) a
WHERE EXISTS (SELECT 1 FROM creditcards b WHERE a.first_name = b.first_name AND a.last_name=b.last_name);