Char (MySQL)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

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

Bronnen