2016-07-21 50 views
0

所以我會試着解釋我在試圖完成什麼。MYSQL:正則表達式替代

我正在尋找從FIELD1複製一個字符串到FIELD2,使其大寫,並根據另一個字段(FIELD3:是/否)的值,要麼預先安裝「HOST-」或追加「-NET」 FIELD2。此外,這也只需要影響FIELD4值爲「bar」的條目。

因此,例如,FIELD1包含文本「foo」,其主機值爲「是」。 FIELD2應爲「HOST-FOO」。

對於FIELD3值「否」,FIELD2將讀爲「FOO-NET」。

我的同事和我在談論這個,他認爲這可以通過正則表達式來完成。我在正確的場地嗎?

回答

1

如果我理解正確你的問題,我認爲是比較簡單的用例

select case field3 when 'yes' then concat('HOST-' . field1) 
        when 'no' then concat(field1 .'-NET') 
     END as Field2 
from my_tbale 
where field4 = 'bar'; 
+0

這表現爲它應該工作,雖然它只需要時FIELD4是「巴」發生。我需要讓你知道,我離開我的領域與MySQL。這個語句不會改變FIELD1中的字符串正確嗎?如果我試圖通過Java解釋邏輯,它會有幫助嗎?我傾向於更邏輯地思考這種方式! – Racehorse35

+0

我已更新aswer。 ..這個查詢不會改變column1中的值。如果你使用select,你不需要在java中進行轉換,但直接使用結果.. – scaisEdge

+0

最後一個問題,是否也可以檢查FIELD1已經以'HOST-'或'-NET'開始/結束,所以我沒有翻倍? – Racehorse35