テーブルからフィールドを選択して部分文字列にしたいと考えています。例えばMySQLテーブルの列を部分文字列にする方法
:
VAN1031 --> 1031
は、私はこれを試みたが、不適切な構文は次のとおりです。
SELECT SUBSTR(R.regnumber,3,3) from registration R
はどのようにこれを行うことができますか?
テーブルからフィールドを選択して部分文字列にしたいと考えています。例えばMySQLテーブルの列を部分文字列にする方法
:
VAN1031 --> 1031
は、私はこれを試みたが、不適切な構文は次のとおりです。
SELECT SUBSTR(R.regnumber,3,3) from registration R
はどのようにこれを行うことができますか?
あなたが特定のインデックスの右側にあるすべての文字を選択したい場合は、第三引数(長さ)を必要としない:
SELECT SUBSTR(R.regnumber, 4)
FROM registration AS R
私もためにSQL文字列に4に開始インデックスを変更多くの一般的なプログラミング言語にあるように、1つの索引が付けられ、0でない索引付けはされていません。
なぜ 'substr(col、4)'がするのか分かりません私にとってはうまくいかないので、これを 'substr(col、1,4)'のように使う必要があります。どうして?私の問題はMySQLのバージョンに関連していますか? – Shafizadeh
あなたはSUBSTRING()
を使用することができます。
select substring(col1, 4)
from table1
はSQL Fiddle with Demoを参照してください。だからあなたのクエリは次のようになります。
select substring(col1, 4, 4)
from table1
あなたが使用することができます:
SUBSTR(string,position)
SUBSTR(string,position,length)
SUBSTRING_INDEX(string, delimiter, count)
例:
command prints
------------------------------------------- -----------
select substr("abcd", 1, 1) #a
select substr("abcd", 1, 2) #ab
select substr("abcd", 2, 1) #b
select substr("abcd", 2, 2) #bc
select substr("abcd", -2, 1) #c
select substr("abcd", -2, 2) #cd
select substring_index('ababab', 'b', 1); #a
select substring_index('ababab', 'b', 2); #aba
select substring_index('ababab', 'b', 3); #ababa
select substring_index('ababab', 'b', -1); #
select substring_index('ababab', 'b', -2); #ab
select substring_index('ababab', 'b', -3); #abab
select substr("abcd", 2) #bcd
select substr("abcd", 3) #cd
select substr("abcd", 4) #d
select substr("abcd", -2) #cd
select substr("abcd", -3) #bcd
select substr("abcd", -4) #abcd
をあなたが返すように文字の数を指定する場合の
SELECT substring(R.regnumber,4)
from registration R
投稿者this link。
あなたの例で 'ababab'は' abcdef'に置き換えなければなりません。なぜなら、 'ab'テキストを繰り返すために出力が混乱するからです。 – machineaddict
SELECT substring(R.regnumber FROM 4) FROM registration AS R;
、あなたは整数ではありませんあなたが書くことができます文字列として参加したい場合:
SELECT CAST(substring(R.regnumber FROM 4) AS UNSIGNED) FROM registration as R;
私は多くのプログラミング言語が行ったように、MySQLのインデックスは1ではなく、ゼロから始まることに気づきました。
SELECT SUBSTRING(R.regNumber,1,3) FROM registration AS R
戻り時にはあなたには、いくつかの最後の文字なしの列をキャッチする必要が1031
などの文字列の残りの部分を返します
VANと
SELECT SUBSTRING(R.regNumber,4) FROM registration AS R
。例えば、私が持っている:私たちは(@bluefeetの答えとな長さを使用して)行うことができます
This is a
:
This is a string
はのは、最後の6つの文字なしで、何らかの理由で、私は列をしたいとしましょう
select substring(col1, 1,LENGTH(col1)-7)
from table1
これは一例に過ぎませんが、間違ったデータベースのインポートを修正するために使用しています。
もちろん! http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring - psの場合、 'SELECT SUBSTRING( 'VAN1031'、4、4)'のようになります。 - 4文字目から始まります文字列から4文字取る – dash
'select" penguins "、substr(" penguins "、1,3)' prints: 'ペンギンズペン' –