На жаль, я не був впевнений, про яку платформу SQL ви говорите:
У MySQL:
$query = ("SELECT * FROM $db WHERE conditions AND LENGTH(col_name) = 3");
в MSSQL
$query = ("SELECT * FROM $db WHERE conditions AND LEN(col_name) = 3");
Функція LENGTH () (MySQL) або LEN () (MSSQL) поверне довжину рядка в стовпці, який ви можете використовувати як умову у своєму реченні WHERE.
Редагувати
Я знаю, що це насправді давно, але думав би розширити свою відповідь, оскільки, як справедливо зазначив Пауло Буено, ви, швидше за все, хочете кількість символів на відміну від кількості байт. Дякую Паулу.
Отже, для MySQL існує CHAR_LENGTH()
. Наступний приклад підкреслює різницю між :LENGTH()
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 |
+
Будьте обережні, якщо ви маєте справу з багатобайтовими символами.