in

sql – ¿consultar la condición DONDE a la longitud del carácter?

apple touch icon@2

Lo siento, no estaba seguro de qué plataforma SQL estás hablando:

En MySQL:

$query = ("SELECT * FROM $db WHERE conditions AND LENGTH(col_name) = 3");

en MSSQL

$query = ("SELECT * FROM $db WHERE conditions AND LEN(col_name) = 3");

La función LENGTH () (MySQL) o LEN () (MSSQL) devolverá la longitud de una cadena en una columna que puede usar como condición en su cláusula WHERE.

Editar

Sé que esto es realmente antiguo, pero pensé en ampliar mi respuesta porque, como bien señaló Paulo Bueno, lo más probable es que desee la cantidad de caracteres en lugar de la cantidad de bytes. Gracias Paulo.

Entonces, para MySQL existe CHAR_LENGTH(). El siguiente ejemplo destaca la diferencia entre LENGTH() un CHAR_LENGTH():

CREATE TABLE words (
    word VARCHAR(100)
) ENGINE INNODB DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;

INSERT INTO words(word) VALUES('快樂'), ('happy'), ('hayır');

SELECT word, LENGTH(word) as num_bytes, CHAR_LENGTH(word) AS num_characters FROM words;

+--------+-----------+----------------+
| word   | num_bytes | num_characters |
+--------+-----------+----------------+
| 快樂    |         6 |              2 |
| happy  |         5 |              5 |
| hayır  |         6 |              5 |
+--------+-----------+----------------+

Tenga cuidado si se trata de caracteres de varios bytes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

sdlc stages

SDLC – Guía rápida

CzBdtUo6eHG5o8WQtG4wDn 1200 80

Según los informes, los piratas informáticos de Genshin Impact pueden mantener cuentas robadas, aquí está la mejor manera de proteger su cuenta