Tablodan bir alan seçip alt dizgeyi seçmek istiyorum. ÖrneğinBir MySQL tablo sütunu ekleme
:
VAN1031 --> 1031
Bunu denedim, ama yanlış sözdizimi:
SELECT SUBSTR(R.regnumber,3,3) from registration R
Bu nasıl yapılabilir?
Tablodan bir alan seçip alt dizgeyi seçmek istiyorum. ÖrneğinBir MySQL tablo sütunu ekleme
:
VAN1031 --> 1031
Bunu denedim, ama yanlış sözdizimi:
SELECT SUBSTR(R.regnumber,3,3) from registration R
Bu nasıl yapılabilir?
Belirli bir endeks sağındaki tüm karakterleri seçmek istiyorsanız Üçüncü argüman (uzunluk) gerekmez çünkü: SQL dizeleri
SELECT SUBSTR(R.regnumber, 4)
FROM registration AS R
Ben de 4'e başlama indeksi değişti birçok popüler programlama dilinde oldukları için 1-indeksli ve 0-endeksli değildir.
Neden bilmiyorum' substr (col, 4) ' benim için çalışmaz ve bunu şöyle kullanmalıyım: 'substr (col, 1, 4)'. niye ya? Sorunum MySQL sürümü ile ilgili mi? – Shafizadeh
Sen SUBSTRING()
kullanabilirsiniz:
select substring(col1, 4)
from table1
SQL Fiddle with Demo bakınız. Yani sorgu olacaktır:
select substring(col1, 4, 4)
from table1
kullanabilirsiniz:
SUBSTR(string,position)
SUBSTR(string,position,length)
SUBSTRING_INDEX(string, delimiter, count)
Örnekler:
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
İade etmek karakter sayısını belirtmek istiyorsanız Of
SELECT substring(R.regnumber,4)
from registration R
'dan.
Örneklerinde 'ababab ',' ab 'metninin tekrarlanması nedeniyle çıktı kafa karıştırıcı olduğundan abcdef ile değiştirilmelidir. – machineaddict
SELECT substring(R.regnumber FROM 4) FROM registration AS R;
ve bir tamsayı olarak yer almak istiyorsanız bir dize yazabilirsiniz:
SELECT CAST(substring(R.regnumber FROM 4) AS UNSIGNED) FROM registration as R;
Ben MySQL endeksi sıfır gibi birçok programlama dilleri yaptılar yerine 1'den başlar fark ettim.
SELECT SUBSTRING(R.regNumber,1,3) FROM registration AS R
VAN İade ve
SELECT SUBSTRING(R.regNumber,4) FROM registration AS R
Bazen bazı son karakterler olmadan sütunu yakalamak için gereken 1031 olarak dizesinin kalan kısmını döndürür. Örneğin, ben var: (@bluefeet cevabını ve BOYU kullanarak)
This is a
Biz yapabiliriz:
This is a string
en son 6 karakterler olmadan nedense sütun istediğinizi varsayalım
select substring(col1, 1,LENGTH(col1)-7)
from table1
Sadece bir örnekti, ancak sizde yanlış bir veritabanı içe aktarma düzeltmesi için kullanıyorum.
Tabii ki! http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring - ps, 'SELECT SUBSTRING (' VAN1031 ', 4, 4) 'olur - 4. karakterden başlar – dash
'dümesinden 4 karakter alır' 'penguenler'i seçin, substr (" penguenler ", 1, 3)' baskılar: 'penguenler kalemi' –