SELECT first_name,last_name,IFNULL(state_table.state_name,"replace string") FROM doctor_table left join state_table on state=state.id
我們可以使用sql select查詢來代替string _「replace_string」_?如何在查詢字符串返回空值時添加動態值?
SELECT first_name,last_name,IFNULL(state_table.state_name,"replace string") FROM doctor_table left join state_table on state=state.id
我們可以使用sql select查詢來代替string _「replace_string」_?如何在查詢字符串返回空值時添加動態值?
嘗試UNION ALL
SELECT first_name,last_name, state_table.state_name
FROM doctor_table left join state_table on state=state.id
WHERE state_table.state_name <> NULL
UNION ALL
SELECT first_name,last_name, "replace_string" as state_name
FROM doctor_table left join state_table on state=state.id
WHERE state_table.state_name == NULL
您可以使用子選擇您IFNULL
SELECT first_name, last_name,
IFNULL(state_table.state_name,(SELECT some_value FROM some_table WHERE id=some_key))
FROM doctor_table
LEFT JOIN state_table on state=state.id
你需要確保你的子選擇恰好返回1倍的值或者整個查詢將失敗。
這是一個sqlfiddle的想法。
你可以這樣做
SELECT first_name,last_name,
IFNULL(state_table.state_name,(SELECT `name` FROM table WHERE Id='something' LIMIT 1)) as something
FROM doctor_table left join state_table on state=state.id
我不知道有關具體到MySQL任何怪癖,但在T-SQL,你可以使用ISNULL嵌套select語句,但它不會做特別有效的查詢。
通過在首選表上創建外連接,然後在調用ISNULL時使用所需列作爲第二個參數,可以獲得更好的性能。
看起來你想要一個外連接,但是信息太少。 – Jon
聽起來像是左連接,然後合併 – zinking
通過闡明你的意圖和/或提供更多背景信息來說明你的問題。 – taiansu