2012-04-11 7 views
3

文字列の中間部分を取得しようとしています。私のテーブルは次のようなものです:mysqlの文字列の中間部分を取得する方法

id machine model 
1 lathe  ISO-678-1567 

私は678のマシンモデルのような中間の部分を取得したいと思います。

Desred出力:

id machine model    midcode 
1 lathe  ISO-678-1567  678 

は現在、私はPHPのcodweと同じことをやっています。しかし、私はそれがmysqlクエリ自体を行う方が良いと思う。どうすればいいですか?

+1

文字列を分割するために使用するルールに関する情報をお知らせください。間にダッシュを入れて、常に3つの部分ですか?中間部分は常に3桁の数字ですか?等々。 – octern

+0

はい、それは常に3部です。 middestは3桁の数字です –

+0

[MID()はSUBSTRING()のエイリアス](http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_mid)ですので、すべての下の答えは基本的に同意します。 – octern

答えて

6

使用MID(str,pos,len)これを行うmysql関数。

SELECT id,machine,model,MID(model,4,3) as midcode FROM tablename 
4

modelが常に固定長のであれば、あなたはこのように、SUBSTRING()を使用することができます。

SELECT SUBSTRING(model, 5, 3) AS 'midcode' FROM Tablename 
1

次のクエリを使用してsql fiddleをreated:

SELECT id,machine,model, 
     left(substring(model,(instr(model,'-')+1)),instr(model,'-')-1) AS midcode 
FROM tbl_machine; 
0

MID() - (指定した位置
SUBSTRINGから始まる部分文字列を返します)指定された

サイト参考として部分文字列を返します DOCS OFFICIAL

関連する問題