Tabla de contenido
1.concat: combina dos o más cadenas en una cadena
Funciones 2.length y char_length: obtenga la longitud de la cadena en bytes y caracteres
3.left: devuelve la parte izquierda de la cadena con la longitud especificada
4.right: devuelve la parte derecha de la cadena con la longitud especificada
5.reemplazar: buscar y reemplazar subcadenas en cadenas.
6.subcadena: extrae una subcadena de una posición con una longitud específica.
7.trim: elimine los caracteres no deseados de una cadena.
8. find_in_set: busque una cadena en una lista de cadenas separadas por comas
1.concat: combina dos o más cadenas en una cadena
Las funciones de MySQL CONCAT()
toman uno o más argumentos de cadena y los concatenan en una sola cadena. CONCAT()
La función requiere al menos un argumento; de lo contrario, se genera un error
Convierta todos los argumentos en tipos de cadena antes de concatenar. Si algún argumento es NULL
, CONCAT()
la función devuelve NULL
un valor.
Si desea utilizar conectores, debe empalmar conectores entre los elementos conectados.
查询语句:select CONCAT(supplier_id,'-',supplier_name) from bms_bills_memo where id = 4
结果:6-供应商4
CONCAT_WS()
La función concatena dos o más valores de cadena con delimitadores predefinidos.
El primer parámetro es el delimitador, seguido de los parámetros a empalmar
Devuelve nulo solo si el delimitador es nulo, si el elemento es nulo, no hay concatenación
查询语句:
select CONCAT_WS('-',supplier_id,supplier_name) from bms_bills_memo where id = 4
select CONCAT_WS('-',null,supplier_name) from bms_bills_memo where id = 4
select CONCAT_WS('-',null,null) from bms_bills_memo where id = 4
结果:
6-供应商4
供应商4
空
Funciones 2.length y char_length: obtenga la longitud de la cadena en bytes y caracteres
longitud: Obtener la longitud de la cadena en bytes
char_length: Obtener la longitud de la cadena en caracteres
Byte es una unidad de medida que indica la cantidad de datos. Es una unidad de medida utilizada por la tecnología de la información informática para medir la capacidad de almacenamiento. Por lo general, un byte equivale a ocho bits.
Carácter (Carácter) Letras, números, palabras y símbolos utilizados en las computadoras, como 'A', 'B', '$', '&', etc.
Generalmente, en el estado inglés, una letra o carácter ocupa un byte, y un carácter chino se representa mediante dos bytes.
- En el código ASCII, una letra en inglés (no distingue entre mayúsculas y minúsculas) es un byte y un carácter chino es de dos bytes.
- En la codificación UTF-8, un carácter inglés es un byte y un carácter chino es tres bytes.
- En la codificación Unicode, un inglés es un byte y un chino es dos bytes.
- Símbolo: la puntuación en inglés es de un byte, la puntuación en chino es de dos bytes. Por ejemplo: punto inglés ocupa 1 byte, punto chino. Toma 2 bytes de tamaño.
- En la codificación UTF-16, el almacenamiento de un carácter del alfabeto inglés o chino requiere 2 bytes (el almacenamiento de algunos caracteres chinos en el área de extensión Unicode requiere 4 bytes).
- En codificación UTF-32, el almacenamiento de cualquier carácter en el mundo requiere 4 bytes.
查询语句:
select LENGTH(supplier_name) from bms_bills_memo where id = 4
select CHAR_LENGTH(supplier_name) from bms_bills_memo where id = 4
结果:
10
4
表中数据
supplier_name:供应商4
En conjunto con
SELECT postid,
title,
IF(CHAR_LENGTH(excerpt) > 20,
CONCAT(LEFT(excerpt,20), '...'),
excerpt) summary
FROM posts;
Usamos IF
una función para verificar si la longitud de la columna del extracto es mayor que 20
, y usamos la instrucción CONCAT para concatenar excerpt
el valor de la columna con puntos suspensivos ( ); de lo contrario, obtenga el contenido completo del extracto ( ) ....
excerpt
3.left: devuelve la parte izquierda de la cadena con la longitud especificada
查询语句:
select LEFT(client_name,4) from bms_bills_memo where id = 4
结果:
青岛自贸
表中数据
client_name:青岛自贸新零售体验中心有限公司
LEFT()
La función acepta dos parámetros:
str
es la cadena de la que extraer la subcadena.length
es un entero positivo que especifica el número de caracteres que se devolverán desde la izquierda.
LEFT()
La función devuelve str
los caracteres de longitud más a la izquierda en una cadena. Devuelve el valor si str
el argumento o length
es .NULL
NULL
Si es length
verdadero 0
o negativo, LEFT
la función devuelve una cadena vacía. Si es length
mayor que str
la longitud de la cadena, la función devuelve la cadena LEFT
completa .str
4.right: devuelve la parte derecha de la cadena con la longitud especificada
查询语句:
select RIGHT(client_name,4) from bms_bills_memo where id = 4
结果:
有限公司
表中数据:
client_name:青岛自贸新零售体验中心有限公司
5.reemplazar: buscar y reemplazar subcadenas en cadenas.
Toma tres argumentos, reemplaza la cadena string
enold_string
new_string
Tenga en cuenta que al buscar texto para reemplazar, MySQL utiliza la coincidencia entre mayúsculas y minúsculas para realizar la búsqueda de la cadena para reemplazar
no admite expresiones regulares
查询语句:
select REPLACE(client_name,'青岛','威海') from bms_bills_memo where id = 4
结果:
威海自贸新零售体验中心有限公司
查询语句:
select REPLACE(bill_of_lading_no,'td','ab') from bms_bills_memo where id = 4
结果:
TD10004
结果没有发生变化,因为区分大小写
6.subcadena: extrae una subcadena de una posición con una longitud específica.
SUBSTRING(string,position);
SUBSTRING(string FROM position);
Hay dos parámetros:
string
El argumento es la cadena cuya subcadena se va a extraer.position
El parámetro es un número entero que especifica el carácter inicial de la subcadena, queposition
puede ser un número entero positivo o negativo.
Si es position
positivo, SUBSTRING
la función extrae la subcadena desde el principio de la cadena.
Si position
el argumento es cero, SUBSTRING
la función devuelve una cadena vacía.
Las funciones se pueden llamar utilizando la sintaxis estándar de SQL con FROM
la palabra claveSUBSTRING
查询语句:
select SUBSTRING(bill_of_lading_no,2) from bms_bills_memo where id = 4
结果:
D10004
查询语句:
select SUBSTRING(bill_of_lading_no,-2) from bms_bills_memo where id = 4
结果:
04
表中数据:
bill_of_lading_no:TD10004
Si desea especificar la longitud de la subcadena que se extraerá de una cadena, puede usar SUBSTRING
una función de la forma
SUBSTRING(string,position,length);
SUBSTRING(string FROM position FOR length);
查询语句:
select SUBSTRING(bill_of_lading_no,2,5) from bms_bills_memo where id = 4
结果:
D1000
查询语句:
select SUBSTRING(bill_of_lading_no,-7,5) from bms_bills_memo where id = 4
结果:
TD100
表中数据:bill_of_lading_no:TD10004
SUBSTR()
función es SUBSTRING()
un sinónimo de función, por lo que se pueden usar indistintamente.
Uso de SUBSTRING_INDEX
Dividir según un símbolo específico y sacar el valor correspondiente
查询语句:
select SUBSTRING_INDEX('qwe-etr-tyu','-',1)
select SUBSTRING_INDEX('qwe-etr-tyu','-',2)
select SUBSTRING_INDEX('qwe-etr-tyu','-',-1)
select SUBSTRING_INDEX('qwe-etr-tyu','-',-2)
结果:
qwe
qwe-etr
tyu
etr-tyu
7.trim: elimine los caracteres no deseados de una cadena.
TRIM([{BOTH|LEADING|TRAILING} [removed_str]] FROM str);
Puede usar la opción LEADING
, TRAILING
o BOTH
para indicar explícitamente TRIM()
a la función que elimine los caracteres innecesarios iniciales y finales de la cadena.
Si no especifica nada, TRIM()
la función utiliza por defecto BOTH
las opciones.
[removed_str]
es la cadena a eliminar. Por defecto es un espacio. Esto significa que si no especifica una cadena específica, TRIM()
la función solo elimina espacios.
str
es removed_str
la cadena de la que se eliminarán los subcaracteres.
TRIM()
La función devuelve una cadena con los caracteres no deseados eliminados.
查询语句:
//从字符串中除去前导和尾随空格
SELECT TRIM(' MySQL TRIM Function ');
//仅删除前导空格
SELECT TRIM(LEADING FROM ' MySQL TRIM Function ');
//仅删除尾随空格
SELECT TRIM(TRAILING FROM ' MySQL TRIM Function ');
//删除字符串末尾的换行符
-- 方式一
SELECT
TRIM(TRAILING '\n' FROM field_name)
FROM table_name;
-- 方式二
SELECT
TRIM(TRAILING '\r' FROM field_name)
FROM table_name;
-- 方式三
SELECT
TRIM(TRAILING '\r\n' FROM field_name)
FROM table_name;
Si desea eliminar solo los espacios iniciales o finales, puede usar otras funciones de cadena: LTRIM
yRTRIM
Use LTRIM
una función para eliminar los espacios iniciales de una cadena
SELECT LTRIM('Función MySQL LTRIM');
Use RTRIM()
una función para eliminar los espacios finales de una cadena
SELECCIONE RTRIM('Función MySQL RTRIM');
8. find_in_set: busque una cadena en una lista de cadenas separadas por comas
FIND_IN_SET(needle,haystack);
FIND_IN_SET()
La función acepta dos parámetros:
- El primer parámetro
needle
es la cadena a buscar. - El segundo argumento
haystack
es una lista de cadenas separadas por comas para buscar.
FIND_IN_SET()
La función devuelve un número entero o un NULL
valor dependiendo del valor del argumento:
- Si
needle
ohaystack
esNULL
, la función devuelveNULL
un valor. - Devuelve cero si
needle
nohaystack
está, o la cadena vacía.haystack
- Si
needle
está enhaystack
, devuelve un entero positivo.
Tenga en cuenta que esta función no funcionará correctamente si needle
incluye una coma ( ). ,
Además, si needle
es una cadena constante y haystack
es una SET
columna de tipo , MySQL utilizará la optimización aritmética de bits.
查询语句:
select FIND_IN_SET('red','yellow,red,blue')
结果:
2
donde puedes usar find_in_set directamente
SELECT
name, belts
FROM
divisions
WHERE
FIND_IN_SET('red', belts);
SELECT
name, belts
FROM
divisions
WHERE
NOT FIND_IN_SET('black', belts);
La función FIND_IN_SET tiene la misma funcionalidad que el operador IN
column IN (x, y, z)
La expresión es FIND_IN_SET(column, 'x,y,z')
la misma que .
IN
Los operadores pueden aceptar cualquier número de argumentos, cada uno separado por una coma. Sin embargo, FIND_IN_SET
la función tiene sólo dos parámetros.
IN
Los operadores se utilizan cuando desea hacer coincidir un valor con una lista de valores en la base de datos . Y cuando desee hacer coincidir un valor con una lista de valores separados por comas almacenados en la base de datos, puede usar FIND_IN_SET
una función.
9.formato: números de formato con configuraciones regionales específicas, redondeadas a lugares decimales.
FOMRAT(N,D,locale);
FORMAT
La función formatea el número N al formato, por ejemplo "#,###,###.##"
, redondeado a D
un lugar decimal. Devuelve un valor como una cadena.
FORMAT
La función acepta tres parámetros:
N
es el número a formatear.D
es el número de decimales a redondear.locale
es un parámetro opcional que determina el separador de miles y la agrupación entre separadores. Silocale
se omite el operador, MySQL lo usará por defectoen_US
. El siguiente enlace proporciona todos los nombres de configuración regional admitidos por MySQL: http://dev.mysql.com/doc/refman/5.7/en/locale-support.html
查询语句:
select format(123456.1258,2)
select format(123456.1248,2)
结果:
123,456.13
123,456.12
Se pueden combinar dos funciones: FORMAT
y CONCAT
. FORMAT
La función redondea el formato del valor de inventario a 2
lugares decimales. Y la función concat agrega el símbolo RMB ( ¥
) al comienzo de la cadena de valores de inventario
SELECT
productname,
CONCAT('¥',
FORMAT(quantityInStock * buyPrice, 2)) stock_value
FROM
products;