2
我有以下查詢:使用IF在MySQL的SELECT子查詢
SELECT `users`.`id`, `login`, `fullname`, `active`, `sex`, `height`,
`special-title`, `language`, `body-fat`,
`main-photo-id`, `main-photo-offset`, `weight`,
`objective`, `level`, `config-comments-type`,
(
SELECT `type`
FROM `users-pro`
WHERE
(`user` = `users`.`id`)
AND
(`starts` <= $time)
AND(
(`ends` > $time)
OR
(`ends` IS NULL)
)
LIMIT 1
) as `account_type`
FROM `users`
我不知道如何/我在哪裏添加IF
聲明,因此,如果內部SELECT返回NULL(無條目用戶在users-pro
,價值1
將返回
這是我最常做的,如果沒有子查詢:
SELECT IF(`rank` = 1, `rank`, 0) as `rank`
不過,我不知道如何用子查詢來做到這一點。
這似乎是一個解決方案,是的。我想知道是否沒有更多的選擇,但我認爲我應該接受它。 –
這就是我在我的代碼中使用的:-) –
雖然COALESCE可以正常工作,但我相信從邏輯角度來看最合適的函數是[IFNULL](http://dev.mysql.com/doc/refman/5.5/ en/control-flow-functions.html#function_ifnull),因爲它在表達式爲NULL的情況下返回另一個值。爲了澄清:COALESCE接受多個參數並返回第一個非NULL值。 – wisefish