我在mysql中有一个表comp_post_code
,其中邮政编码格式没有空格M4W1A3
,但有些邮政编码与AB T1H2J1
,BC 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个......正如我所提到的,有些问题不是全部...如果我这样做会影响所有行。
答案 0 :(得分:5)
UPDATE canada_database SET comp_post_code = substring_index( comp_post_code, ' ', -1 )
请参阅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)