Char (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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