Entschuldigung, ich war mir nicht sicher, über welche SQL-Plattform Sie sprechen:
In MySQL:
$query = ("SELECT * FROM $db WHERE conditions AND LENGTH(col_name) = 3");
in MSSQL
$query = ("SELECT * FROM $db WHERE conditions AND LEN(col_name) = 3");
Die Funktion LENGTH () (MySQL) oder LEN () (MSSQL) gibt die Länge einer Zeichenfolge in einer Spalte zurück, die Sie als Bedingung in Ihrer WHERE-Klausel verwenden können.
Bearbeiten
Ich weiß, dass dies wirklich alt ist, dachte aber, ich würde meine Antwort erweitern, weil Sie, wie Paulo Bueno zu Recht betonte, höchstwahrscheinlich die Anzahl der Zeichen im Gegensatz zur Anzahl der Bytes wollen. Danke Paulo.
Für MySQL gibt es also die CHAR_LENGTH()
. Das folgende Beispiel verdeutlicht den Unterschied zwischen LENGTH()
ein 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 |
+
Seien Sie vorsichtig, wenn Sie mit Multi-Byte-Zeichen arbeiten.
Ich denke du willst das:
select * from dbo.table where DATALENGTH(column_name) = 3
quelle
SELECT * FROM my_table WHERE substr(my_field,1,5) = "abcde";
quelle