Извините, я не уверен, о какой платформе 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 |
+--------+-----------+----------------+
Будьте осторожны, если имеете дело с многобайтовыми символами.