MySQL concat&正则表达式

时间:2016-11-07 09:26:35

标签: mysql regex

我在询问有关concatenation functionregex的问题。 我有一个fied(reference)看起来像:

FW123
TS76
FWE8E
K987
HT78
FW345

我希望将最后以FW开头的所有行与EU连接起来。 所以结果必须如下:

FW123EU
TS76
FWE8EEU
K987
HT78
FW345EU

这是我的命令行:

UPDATE ps2_product 
SET `reference` = CONCAT(^FW[A-Z0-9],EU)

这是我第一次处理正则表达式。 语法是否正确?

谢谢,

3 个答案:

答案 0 :(得分:3)

您需要添加where条件。

UPDATE ps2_product 
SET `reference` = CONCAT(reference,'EU')
WHERE reference REGEXP '^FW[A-Z0-9]+$'

答案 1 :(得分:2)

您可以使用LIKE

UPDATE ps2_product t
SET t.`reference` = CONCAT(t.`reference`,'EU')
WHERE t.reference LIKE 'FW%'

答案 2 :(得分:1)

您可以通过以下方式执行此操作:

1)使用LIKE和CONCAT:

UPDATE ps2_product  
SET reference = CONCAT(reference,'EU') 
WHERE reference LIKE 'FW%';

2)使用CONCAT,REGEX和WHERE:

UPDATE ps2_product 
SET references = CONCAT(references,'EU') 
WHERE references REGEXP '^FW[A-Z0-9]';

3)使用REGEX,CONCAT和案例:

UPDATE ps2_product
SET references = 
CASE
  WHEN references REGEXP '^FW[A-Z0-9]' = 1 THEN CONCAT(references,'EU')
  WHEN references REGEXP '^FW[A-Z0-9]' = 0 THEN references
END;