2016-07-21 52 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