在SQL Server中,我可以做這樣的事情:IF(SUBQUERY)= SOMETHING選擇一個ELSE的選擇B的MySql
IF (SELECT COUNT(*) FROM TABLE WHERE COLUMN=VALUE) = 0
SELECT 1,2,3
ELSE SELECT A,B,C FROM TABLE WHERE COLUMN=VALUE
我用了很多,但現在我必須使用MySQL,我可以「噸真的得到那個工作:)
我想同樣適用於UPSERT:
IF (SELECT COUNT(*) FROM TABLE WHERE COLUMN=VALUE) = 0
INSERT INTO TABLE(COLUMN, OTHERCOLUMN) VALUES(VALUE, OTHERVALUE)
ELSE
UPDATE TABLE SET OTHERCOLUMN=OTHERVALUE WHERE COLUMN=VALUE
何做你該做「,如果子查詢別人的MySql中?
這對我來說工作得很好。但是我必須說,Sql Server if-else有點「靈活」。如果A,B,C是COUNT,AVG,MAX等函數,你會得到兩個結果,但我當然可以修復極限1 – Jesper 2013-04-30 22:53:32
@Jesper,我認爲在這種情況下sql服務器更靈活,這是隻是一個「骯髒」的技巧,使其在MySQL中工作。您可以使用限制1來解決這個問題,或者您可以再次使用子查詢,例如'SELECT * FROM(SELECT A,B,C ... WHERE ...)WHERE(SELECT COUNT(*)...)> 0'但是id看起來不像在SQL服務器... – fthiella 2013-04-30 22:59:26