问题
I'm trying to insert an "Item order" in a table called AsksFor and I want to make sure the Item and ItemManufacturer exists in the table Sells. However I keep getting "syntax error, unexpected if, expecting END_OF_INPUT or ';'" for using the IF. Anyone know any other ways to write this for MySQL?
INSERT INTO AsksFor (Username, ItemName, ItemManufacturer)
VALUES ('Harish', 'zkoxtlv93', 'tbzrt93')
IF EXISTS(SELECT ItemName, ItemManufacturer
FROM Sells
WHERE Sells.ItemName = VALUES(ItemName)
AND Sells.ItemManufacturer = VALUES(ItemManufacturer));
回答1:
EXISTS clause is not availaible for MySQL . Anyways you don't need it , the AND condition in WHERE clause performs the checking part whether values exists in source table Sells
.
Try this
INSERT INTO AsksFor (Username, ItemName, ItemManufacturer)
SELECT DISTINCT 'Harish',ItemName, ItemManufacturer
FROM Sells
WHERE ItemName='zkoxtlv93' AND ItemManufacturer='tbzrt93'
来源:https://stackoverflow.com/questions/22926726/insert-into-table-if-similar-value-exists-in-another-existing-table-not-a-forei