MySQL - Cómo seleccionar datos por longitud de cadena


302
SELECT * FROM table ORDER BY string_length(column);

¿Hay una función MySQL para hacer esto (por supuesto en lugar de string_length)?

Respuestas:


492

Está buscando CHAR_LENGTH()obtener el número de caracteres en una cadena.

Para los conjuntos de caracteres de varios bytes LENGTH(), obtendrá la cantidad de bytes que ocupa la cadena, mientras CHAR_LENGTH()que devolverá la cantidad de caracteres.


139
En realidad, CHAR_LENGTH () debería ser una mejor opción. Para los conjuntos de caracteres de varios bytes, LENGTH () le dará el número de bytes que ocupa la cadena, mientras que CHAR_LENGTH () devolverá el número de caracteres.
András Szepesházi 01 de

44
seleccione LONGITUD ('Ö'); resultados 2 !! ¡La respuesta de András Szepesházi es la correcta!
fubo

Es correcto enviar un parámetro entero a CHAR_LENGTH, ya que si devuelvo el número de caracteres? , por ejemplo CHAR_LENGTH(12)return2
DarkFenix

81
select * from table order by length(column);

La documentación sobre la función length (), así como todas las demás funciones de cadena, está disponible aquí .



3

La función que uso para encontrar la longitud de la cadena es la lengthsiguiente:

SELECT * FROM table ORDER BY length(column);

1

Usé estas oraciones para filtrar

SELECT table.field1, table.field2 FROM table WHERE length(field) > 10;

puede cambiar 10 por otro número que desee filtrar.


-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

Ejemplo si desea seleccionar del cliente las entradas con un nombre más corto que 2 caracteres.

select * from customer where 1 **having length(name)<2**
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.