簡體   English   中英

使用concat的Mysql Select,其中某些字段為空

[英]Mysql Select with concat where some fields are null

我正在兩個表之間進行聯接,以將條件值推入記錄描述中。 問題是某些記錄沒有某些/所有條件,並且整個字符串失敗:

Select Concat(Description,'<br><br>',C.CritieraNameA,': ',T.CriteriaValueA,'<br><br>',C.CriteriaNameB,': ',T.CriteriaValueB) From Records T Inner Join Company C On T.CompanyID=C.ID

所以我最終

專門從事乳制品的超市

時間:8 am-5pm
信用卡:是

隨風而逝

播放時間:太長
格式:DVD

直到我創下任何

  • 公司表中沒有CriteriaTypeA或CriteriaTypeB
  • 記錄表中沒有CriteriaValueA或CriteriaValueB

有沒有一種方法可以執行此選擇,以便在記錄中找不到CriteriaValue時:

專門從事肉類的超市

小時:
信用卡:是

或公司中的CriteriaName:

保時捷

類型:跑車

它不只是返回空結果嗎?

在這種情況下, IfNull可能很有用-它會檢測一個null並將其替換為您提供的值。

IFNULL(CriteriaTypeA , "not given")

Concat_WS的解救:

Concat_WS('',C.CriteriaTypeA,': ',T.CriteriaValue)

應該這樣做:

Select Concat(
    Description,
    Coalesce(Concat('<br><br>',C.CritieraNameA,': ',T.CriteriaValueA), ''),
    Coalesce(Concat('<br><br>',C.CriteriaNameB,': ',T.CriteriaValueB), '')
) 
From Records T
Inner Join Company C
On T.CompanyID=C.ID

但是正如我在評論中寫道:不要在SQL中實現輸出邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM