[Bug] Fix string functions not support multibyte string (#3345)
Let string functions support utf8 encoding
This commit is contained in:
@ -0,0 +1,55 @@
|
||||
---
|
||||
{
|
||||
"title": "CHAR_LENGTH",
|
||||
"language": "en"
|
||||
}
|
||||
---
|
||||
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
# char_length
|
||||
## Description
|
||||
### Syntax
|
||||
|
||||
'INT char_length (VARCHAR str)'
|
||||
|
||||
|
||||
Returns the length of the string and the number of characters returned for multi-byte characters. For example, five two-byte width words return a length of 5, only utf8 encodeing is support at current version.
|
||||
|
||||
## example
|
||||
|
||||
|
||||
```
|
||||
mysql> select char_length("abc");
|
||||
+--------------------+
|
||||
| char_length('abc') |
|
||||
+--------------------+
|
||||
| 3 |
|
||||
+--------------------+
|
||||
|
||||
mysql> select char_length("中国");
|
||||
+------------------- ---+
|
||||
| char_length('中国') |
|
||||
+-----------------------+
|
||||
| 2 |
|
||||
+-----------------------+
|
||||
```
|
||||
## keyword
|
||||
CHAR_LENGTH
|
||||
@ -31,7 +31,7 @@ under the License.
|
||||
'VARCHAR left (VARCHAR str)'
|
||||
|
||||
|
||||
It returns the left part of a string of specified length
|
||||
It returns the left part of a string of specified length, length is char length not the byte size.
|
||||
|
||||
## example
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ under the License.
|
||||
'INT length (VARCHAR str)'
|
||||
|
||||
|
||||
Returns the length of the string and the number of characters returned for multi-byte characters. For example, five two-byte width words return a length of 10.
|
||||
Returns the length of the string in byte size.
|
||||
|
||||
## example
|
||||
|
||||
|
||||
@ -0,0 +1,56 @@
|
||||
---
|
||||
{
|
||||
"title": "REVERSE",
|
||||
"language": "en"
|
||||
}
|
||||
---
|
||||
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
# reverse
|
||||
## description
|
||||
### Syntax
|
||||
|
||||
`VARCHAR reverse(VARCHAR str)`
|
||||
|
||||
|
||||
The REVERSE() function reverses a string and returns the result.
|
||||
|
||||
## example
|
||||
|
||||
```
|
||||
mysql> SELECT REVERSE('hello');
|
||||
+------------------+
|
||||
| REVERSE('hello') |
|
||||
+------------------+
|
||||
| olleh |
|
||||
+------------------+
|
||||
1 row in set (0.00 sec)
|
||||
|
||||
mysql> SELECT REVERSE('你好');
|
||||
+------------------+
|
||||
| REVERSE('你好') |
|
||||
+------------------+
|
||||
| 好你 |
|
||||
+------------------+
|
||||
1 row in set (0.00 sec)
|
||||
```
|
||||
## keyword
|
||||
REVERSE
|
||||
@ -31,7 +31,7 @@ under the License.
|
||||
'VARCHAR RIGHT (VARCHAR STR)'
|
||||
|
||||
|
||||
It returns the right part of a string of specified length
|
||||
It returns the right part of a string of specified length, length is char length not the byte size.
|
||||
|
||||
## example
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ under the License.
|
||||
'VARCHAR STRAIGHT (VARCHAR STR)'
|
||||
|
||||
|
||||
It returns the left part of a string of specified length
|
||||
It returns the left part of a string of specified length, length is char length not the byte size.
|
||||
|
||||
## example
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ under the License.
|
||||
'VARCHAR strright (VARCHAR str)'
|
||||
|
||||
|
||||
It returns the right part of a string of specified length
|
||||
It returns the right part of a string of specified length, length is char length not the byte size.
|
||||
|
||||
## example
|
||||
|
||||
|
||||
Reference in New Issue
Block a user