Char (MySQL): verschil tussen versies

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken
(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:
Met <code>char</code> kun je karakters weergeven, al of niet in combinatie met een bepaalde karaktercodering.
+
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 05: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

Bronnen