Strings manipuleren (MySQL)
char_length()
char_length() retourneert het aantal karakters, terwijl length het aantal bytes retourneert:
select char_length("Kohlebürsten") # 12 select length("Kohlebürsten") # 13
Voor details, zie Strings, bytes & characters (MySQL).
Converteren naar onderkast
update tbl_tools set tbl_tools.kind_de_lowercase =lower(tbl_tools.kind_de_lowercase)
Eerste letter van elk woord converteren naar kapitaal
Standaard kan dat niet in MySQL, maar dit helpt al flink:
update tbl_merk set name = concat( upper(substr(name,1,1)), lower(substr(name,2)) );
Kolommen vervangen
Algemeen:
UPDATE table_name SET doelveld = nieuwewaarde
Voorbeeld:
UPDATE tbl_root SET MateriaalDE ='Graphit' WHERE KindOfProduct='Koolborstels voor handgereedschap'
Left
select left("hoipipeloi",3); hoi
length()
Zie char_lenght() hierboven!
Replace
Right()
Bv.:
select right("foo-bar",3) bar
Substring & Position
Gebruik substring
en position
om substring te extraheren.
Voorbeeld: Dubbele primaire sleutels met schuine streep
select substr("0100/1100",1,4); -- Output: 0100 select substr("0100/1100",5); -- Output: /1100 select substr("0100/1100",5,1); -- Output: / select substr("0100/1100",5,2); -- Output: /1 select position("/" in "0100/1100"); -- Output: 5 select substr("0100/1100",1,position("/" in "0100/1100")-1);-- Output: 0100 select substr("0100/1100",position("/" in "0100/1100")+1) -- Output: 1100
P.s.: Er mag geen spatie zitten in position(
Toegepast op een tabel als geheel
select substr(apparaat_type,1,3) from tbl_tmp1
Met underscores gescheiden samengestelde sleutels
Ik heb regelmatig data met viervoudige samengestelde sleutels, gescheiden door underscores:
0101_Bosch_P 80 / P 80 K_0 603 232 001 0101_Bosch_P 80 / P 80 K_0 603 232 003 0101_Bosch_P 80 / P 80 K_0 603 232 032
En zo peuter je dit uit elkaar:
select sku, substring_index(sku,"_",1) as sub_1, substring_index(substring_index(sku,"_",2),"_",-1) as sub_2, substring_index(substring_index(sku,"_",3),"_",-1) as sub_3, substring_index(substring_index(sku,"_",4),"_",-1) as sub_4 from rootb1;
Testen voor aanwezigheid van een bepaald teken
select * from import where sku like "%/%" // Selecteer alle records met een / in veld 'sku'
Zie ook
- Strings, bytes & characters (MySQL)
- SUBSTRING INDEX (MySQL)
- Tekencodering achterhalen
- Temporary tables (MySQL)
- Trim (MySQL)