Char (MySQL): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
(Nieuwe pagina aangemaakt met 'Met <code>char</code> kun je karakters weergeven, al of niet in combinatie met een bepaalde karaktercodering. Voorbeelden: <pre> mysql> select char(65); +--------...') |
|||
(4 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
− | + | Functie <code>CHAR (N, ... [USING charset_name])</code> interpreteert argumenten ''N'' als integere waardes, en retourneert de bijbehorende karakters volgens de opgegeven karakterset (met ASCII als standaard-karakterset). | |
− | Voorbeelden | + | * Er worden alleen waardes tot en met 256 geaccepteerd. Waardes hierboven, worden gesplitst in aparte bytes |
+ | * Je kunt geen 'namen' of 'codenamen' voor karakters meegeven. Er is dus niet zoiets als <code>char(\nbsp)</code>. | ||
+ | |||
+ | == Voorbeelden == | ||
<pre> | <pre> | ||
Regel 24: | Regel 27: | ||
1 row in set (0,01 sec) | 1 row in set (0,01 sec) | ||
</pre> | </pre> | ||
+ | |||
+ | Voor meerdere tekens achter elkaar, moet je de cijfers scheiden met komma's. Bv.: | ||
+ | |||
+ | <pre> | ||
+ | select char(65, 66, 67); | ||
+ | >>> ABC | ||
+ | |||
+ | select char(0x41, 0x42, 0x43); | ||
+ | >>> ABC | ||
+ | </pre> | ||
+ | |||
+ | Je kunt <code>char</code> moeiteloos incorporeren in tekststrings. Bv.: | ||
+ | |||
+ | <pre> | ||
+ | select * from device_tmp where brand like concat("%", char(65), "%"); | ||
+ | </pre> | ||
+ | |||
+ | Dat geldt ook voor meerdere karakters: | ||
+ | |||
+ | <pre> | ||
+ | select * from device_tmp where brand like concat("%", char(65), char(69), "%"); | ||
+ | |||
+ | >>> AEG... | ||
+ | </pre> | ||
+ | |||
+ | Je kunt de te gebruiken karakterset specificeren. Ik ken daar zo snel geen toepassing voor, omdat <code>char</code> uitsluitend waardes 0-255 accepteert, en voor de karaktersets die ik in het wild tegenkome, zijn de eerste 256 waardes hetzelfde als ASCII. Desalniettemin, zo doe je dat: | ||
+ | |||
+ | <pre> | ||
+ | select char(65 using utf8); | ||
+ | >>> A | ||
+ | </pre> | ||
+ | == Bronnen == | ||
+ | |||
+ | * https://www.w3resource.com/mysql/string-functions/mysql-char-function.php | ||
+ | * https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_char |
Huidige versie van 1 dec 2019 om 06:36
Functie CHAR (N, ... [USING charset_name])
interpreteert argumenten N als integere waardes, en retourneert de bijbehorende karakters volgens de opgegeven karakterset (met ASCII als standaard-karakterset).
- Er worden alleen waardes tot en met 256 geaccepteerd. Waardes hierboven, worden gesplitst in aparte bytes
- Je kunt geen 'namen' of 'codenamen' voor karakters meegeven. Er is dus niet zoiets als
char(\nbsp)
.
Voorbeelden
mysql> select char(65); +----------+ | char(65) | +----------+ | A | +----------+ 1 row in set (0,00 sec)
En dat kan ook in hexadecimaal:
mysql> select char(0x41); +------------+ | char(0x41) | +------------+ | A | +------------+ 1 row in set (0,01 sec)
Voor meerdere tekens achter elkaar, moet je de cijfers scheiden met komma's. Bv.:
select char(65, 66, 67); >>> ABC select char(0x41, 0x42, 0x43); >>> ABC
Je kunt char
moeiteloos incorporeren in tekststrings. Bv.:
select * from device_tmp where brand like concat("%", char(65), "%");
Dat geldt ook voor meerdere karakters:
select * from device_tmp where brand like concat("%", char(65), char(69), "%"); >>> AEG...
Je kunt de te gebruiken karakterset specificeren. Ik ken daar zo snel geen toepassing voor, omdat char
uitsluitend waardes 0-255 accepteert, en voor de karaktersets die ik in het wild tegenkome, zijn de eerste 256 waardes hetzelfde als ASCII. Desalniettemin, zo doe je dat:
select char(65 using utf8); >>> A