我的初始插入語句工作正常,但我想發送一個自定義結果回我的應用程序。 這可能嗎? (請參見下面的最後一個SELECT語句):MySQL返回行如果插入成功,否則返回'失敗'
-- this is working
INSERT INTO users (email, firstName, lastName, password)
SELECT * FROM (
SELECT '{{email}}' as email,
'test' as firstName,
'person' as lastName,
'{{password}}' as password) AS tmp
WHERE NOT EXISTS (
SELECT email FROM users WHERE email = '{{email}}'
) LIMIT 1;
-- this statement is not working.
SELECT IF(ROW_COUNT() > 0,
SELECT * FROM users WHERE email = '{{email}}',
'failure'
);
運行這給了我:
錯誤的詳細信息:您在您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第2行的'SELECT * FROM users WHERE email ='[email protected]','failure')'附近使用正確的語法。
我懷疑你可以嵌套的IF像內選擇。你是否真的希望結果在失敗的情況下是單一值,在非失敗的情況下是否需要整行?似乎這會使應用程序中的處理工作更加痛苦而不是更少。 –
好吧,如果你能提出建議,我會很樂意採取不同的方法。如果成功,我不想再向服務器撥打新記錄。 – Dave