2011-11-05 97 views
1

如何删除MySQL查询中某个字段的第一个单词? 我试图使用SUBSTRING_INDEX但没有结果。现场为varchar,可以同时包含字母和数字如何删除查询中的第一个单词

举例: PWS 20110804 Pos. 04应该成为20110804 Pos. 04

PWS Pos. 04应该成为Pos. 04

PWS AA.0804 Pos. 04应该成为AA.0804 Pos. 04

+1

请你定义在一个包含字母和数字varchar字段一个“字”的意思。 –

+1

这可能更适合于用来从 –

回答

7

使用SUBSTRING()LOCATE(),如果你考虑“单词”被一个空格字符限制。 LOCATE()将返回其第一个参数第一次出现的位置。

SELECT SUBSTRING(column, LOCATE(' ', column)+1); 

实施例:

mysql> SELECT SUBSTRING('this has four words', LOCATE(' ' ,'this has four words')+1); 
+------------------------------------------------------------------------+ 
| SUBSTRING('this has four words', LOCATE(' ' ,'this has four words')+1) | 
+------------------------------------------------------------------------+ 
| has four words               | 
+------------------------------------------------------------------------+ 
+0

查询数据库的任何语言绝对正确:对于mySql,使用“substring()”和“locate()”。我也同意Pekka--根据你的字符串处理的复杂程度,最好用高级语言(如Java,Python或Perl)而不是直接在SQL中完成。 – paulsm4

+0

谢谢Michael! – Muiter

0

SUBSTRING(柱,LOCATE(””,列)+1)将失败,一个措辞值,并返回第一(和唯一的词)。

即使是只有一个有这将去掉第一个字:

SUBSTRING(first_name, LOCATE(' ', CONCAT(first_name, ' '))+1) 
相关问题