替换MySQL中的部分字符串

时间:2009-08-08 17:50:44

标签: mysql regex

如果我的MySQL中有这样的数据

  

表:

     

数据(TEXT)

     

foo(hal)

     

foo(dave)

     

bar(dave)

     

bar(dave)

我想做这个查询

SELECT DISTINCT(data) FROM table;

现在这将返回上面列出的表格。但我想做的是某种替换,以便我的返回查询看起来像这样

SELECT DISTINCT(data) FROM table Replace(data, "(xxxx)", "");

所以查询返回

  • FOO

显然数据没有被替换,因为Brackets很重要,它只是替换了查询

如果可以做到这一点,那么

就会出现性能问题

2 个答案:

答案 0 :(得分:2)

SELECT DISTINCT stuff 
FROM (
  SELECT RTRIM(SUBSTR(data, 1, LOCATE('(', data) - 1)) AS stuff 
  FROM foo
) t;

答案 1 :(得分:1)

这对我有用,可以解决上述问题。感谢hobodave,你确实让我走向了正确的方向

SELECT DISTINCT(SUBSTRING_INDEX(data, '(', 1)) AS tag FROM table