用mysql修剪前面几个字符

时间:2013-04-24 13:17:23

标签: php mysql

我在mysql中有一个表comp_post_code,其中邮政编码格式没有空格M4W1A3,但有些邮政编码与AB T1H2J1BC V6X3P7类似, QC G0C2R0等等。我想从他们那里删除这一额外的AB BC。

我怎么能在mysql中做到这一点...(AB BC QC is just example there r many others in them, but all are in front and with space and postcode dont have space

编辑......我试过这个

UPDATE canada_database
SET comp_post_code= SUBSTRING(comp_post_code, 3)

但它从所有行中删除了第3个......正如我所提到的,有些问题不是全部...如果我这样做会影响所有行。

3 个答案:

答案 0 :(得分:5)

UPDATE canada_database SET comp_post_code = substring_index( comp_post_code, ' ', -1 )

手动:substring_index()

请参阅sqlfiddle上的示例。

答案 1 :(得分:0)

作为交替方式......您可以使用regexp查询选择数据...

select * from canada_database where comp_post_code regexp '[A-Z]{2} [A-Z]*';

然后通过PHP迭代并使用PHP更新每个...因为mysql不支持基于regexp的替换。

答案 2 :(得分:0)

UPDATE canada_database
SET comp_post_code = if(LOCATE(' ',comp_post_code) > 0 , SUBSTRING(comp_post_code , 3) , comp_post_code)