2010-01-19 30 views
2

後,我有一個郵政編碼一張大桌子,但他們都像長格式:06608-1405MySQL的替代號碼連字符

我要求是刪除連字符和連字符後的數字。我以前使用MYSQL REPLACE,但不知道如何使用通配符。

爲你喝彩的時候。

Ĵ

回答

2

如何使用SUBSTRING_INDEX

select SUBSTRING_INDEX(ZIP, '-', 1); 

編輯:

要更新表:

Update <table-name> set ZIP = SUBSTRING_INDEX(ZIP, '-', 1); 
+0

這工作完美,但他們仍然在分貝你知道如何刪除後面的連字符和數字嗎? – 2010-01-19 11:04:44

+0

乾杯,codaddict!發揮魅力。好一個。 – 2010-01-19 11:20:57

0

如果連字符之前的數字都是相同的長度(5),你可以做SUBSTRING(zip, 0, 5)

甚至SUBSTRING(zip, 0, LOCATE('-', zip))

或者LEFT(zip, LOCATE('-', zip))如果你想跟隨其他建議,這是製作。

0

使用左側的組合()的INSTR()函數

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html

select left('12345-6789', instr('12345-6789', '-') - 1) 

返回

12345 

(可以/應當細化到僅如果instr()返回一個非零值,則執行left()操作。

編輯:刪除連字符等用途:

update my_table 
set my_col = left(my_col, instr(my_col, '-') - 1) 
+0

乾杯,但我真的需要它後刪除連字符和數字。 – 2010-01-19 10:53:25