Skip to content

Commit a600e5d

Browse files
authored
Add ELT and EXPORT_SET examples (#16934) (#17375)
1 parent 1883b6f commit a600e5d

File tree

1 file changed

+76
-2
lines changed

1 file changed

+76
-2
lines changed

functions-and-operators/string-functions.md

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,11 +418,85 @@ Output:
418418

419419
### [`ELT()`](https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_elt)
420420

421-
Return string at index number.
421+
The `ELT()` function returns the element at the index number.
422+
423+
```sql
424+
SELECT ELT(3, 'This', 'is', 'TiDB');
425+
```
426+
427+
```sql
428+
+------------------------------+
429+
| ELT(3, 'This', 'is', 'TiDB') |
430+
+------------------------------+
431+
| TiDB |
432+
+------------------------------+
433+
1 row in set (0.00 sec)
434+
```
435+
436+
The preceding example returns the third element, which is `'TiDB'`.
422437

423438
### [`EXPORT_SET()`](https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_export-set)
424439

425-
Return a string such that for every bit set in the value bits, you get an on string and for every unset bit, you get an off string.
440+
The `EXPORT_SET()` function returns a string that consists of a specified number (`number_of_bits`) of `on`/`off` values, optionally separated by `separator`. These values are based on whether the corresponding bit in the `bits` argument is `1`, where the first value corresponds to the rightmost (lowest) bit of `bits`.
441+
442+
Syntax:
443+
444+
```sql
445+
EXPORT_SET(bits, on, off, [separator[, number_of_bits]])
446+
```
447+
448+
- `bits`: an integer representing the bit value.
449+
- `on`: the string to be returned if the corresponding bit is `1`.
450+
- `off`: the string to be returned if the corresponding bit is `0`.
451+
- `separator` (optional): the separator character in the result string.
452+
- `number_of_bits` (optional): the number of bits to be processed. If it is not set, `64` (the max size of bits) is used by default, which means that `bits` is treated as an unsigned 64-bit integer.
453+
454+
Examples:
455+
456+
In the following example, `number_of_bits` is set to `5`, resulting in 5 values, separated by `|`. Because only 3 bits are given, the other bits are considered unset. Therefore, setting `number_of_bits` to either `101` or `00101` results in the same output.
457+
458+
```sql
459+
SELECT EXPORT_SET(b'101',"ON",'off','|',5);
460+
```
461+
462+
```sql
463+
+-------------------------------------+
464+
| EXPORT_SET(b'101',"ON",'off','|',5) |
465+
+-------------------------------------+
466+
| ON|off|ON|off|off |
467+
+-------------------------------------+
468+
1 row in set (0.00 sec)
469+
```
470+
471+
In the following example, `bits` is set to `00001111`, `on` is set to `x`, and `off` is set to `_`. This causes the function to return `____` for the `0` bits and `xxxx` for the `1` bits. Therefore, when processing with the bits in `00001111` from right to left, the function returns `xxxx____`.
472+
473+
```sql
474+
SELECT EXPORT_SET(b'00001111', 'x', '_', '', 8);
475+
```
476+
477+
```sql
478+
+------------------------------------------+
479+
| EXPORT_SET(b'00001111', 'x', '_', '', 8) |
480+
+------------------------------------------+
481+
| xxxx____ |
482+
+------------------------------------------+
483+
1 row in set (0.00 sec)
484+
```
485+
486+
In the following example, `bits` is set to `00001111`, `on` is set to `x`, and `off` is set to `_`. This causes the function to return `x` for each `1` bit and `_` for each `0` bit. Therefore, when processing with the bits in `01010101` from right to left, the function returns `x_x_x_x_`.
487+
488+
```sql
489+
SELECT EXPORT_SET(b'01010101', 'x', '_', '', 8);
490+
```
491+
492+
```sql
493+
+------------------------------------------+
494+
| EXPORT_SET(b'01010101', 'x', '_', '', 8) |
495+
+------------------------------------------+
496+
| x_x_x_x_ |
497+
+------------------------------------------+
498+
1 row in set (0.00 sec)
499+
```
426500

427501
### [`FIELD()`](https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_field)
428502

0 commit comments

Comments
 (0)