Función de cadena de la función MySQL

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

9.formato: números de formato con configuraciones regionales específicas, redondeadas a lugares decimales.


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 NULLun 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 IFuna función para verificar si la longitud de la columna del extracto es mayor que 20, y usamos la instrucción CONCAT para concatenar excerptel 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:

  • stres la cadena de la que extraer la subcadena.
  • lengthes un entero positivo que especifica el número de caracteres que se devolverán desde la izquierda.

LEFT()La función devuelve strlos caracteres de longitud más a la izquierda en una cadena. Devuelve el valor si strel argumento o lengthes .NULLNULL

Si es lengthverdadero 0o negativo, LEFTla función devuelve una cadena vacía. Si es lengthmayor que strla longitud de la cadena, la función devuelve la cadena LEFTcompleta .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 stringenold_stringnew_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:

  • stringEl argumento es la cadena cuya subcadena se va a extraer.
  • positionEl parámetro es un número entero que especifica el carácter inicial de la subcadena, que positionpuede ser un número entero positivo o negativo.

Si es positionpositivo, SUBSTRINGla función extrae la subcadena desde el principio de la cadena.

Si positionel argumento es cero, SUBSTRINGla función devuelve una cadena vacía.

Las funciones se pueden llamar utilizando la sintaxis estándar de SQL con FROMla 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 SUBSTRINGuna 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, TRAILINGo BOTHpara 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 BOTHlas 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.

stres removed_strla 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: LTRIMyRTRIM

Use LTRIMuna 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 needlees la cadena a buscar.
  • El segundo argumento haystackes una lista de cadenas separadas por comas para buscar.

FIND_IN_SET()La función devuelve un número entero o un NULLvalor dependiendo del valor del argumento:

  • Si needleo haystackes NULL, la función devuelve NULLun valor.
  • Devuelve cero si needleno haystackestá, o la cadena vacía.haystack
  • Si needleestá en haystack, devuelve un entero positivo.

Tenga en cuenta que esta función no funcionará correctamente si needleincluye una coma ( ). Además, si needlees una cadena constante y haystackes una SETcolumna 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 .

INLos operadores pueden aceptar cualquier número de argumentos, cada uno separado por una coma. Sin embargo, FIND_IN_SETla función tiene sólo dos parámetros.

INLos 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_SETuna función.

9.formato: números de formato con configuraciones regionales específicas, redondeadas a lugares decimales.

FOMRAT(N,D,locale);

FORMATLa función formatea el número N al formato, por ejemplo "#,###,###.##", redondeado a Dun lugar decimal. Devuelve un valor como una cadena.

FORMATLa función acepta tres parámetros:

  • Nes el número a formatear.
  • Des el número de decimales a redondear.
  • localees un parámetro opcional que determina el separador de miles y la agrupación entre separadores. Si localese omite el operador, MySQL lo usará por defecto en_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: FORMATy CONCAT. FORMATLa función redondea el formato del valor de inventario a 2lugares 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;

Supongo que te gusta

Origin blog.csdn.net/m0_72167535/article/details/128361785
Recomendado
Clasificación