我有一个包含大量单词的数据库,但是我只想选择那些字符长度等于给定数字的记录(在示例情况3中):4 r& s7 N8 L% ~* f
$query = ("SELECT * FROM $db WHERE conditions AND length = 3");& i: A( r. I# i) Y# j+ w
但这不起作用…有人可以向我显示正确的查询吗? , r* n' E) o6 F" m) o, J # z, X: A D/ X" U" A" U解决方案:- a7 M7 W% U9 X/ p+ W
1 K" _% f: f I. Y. D' C0 j
1 x ` L% ?( P* M Z* Y' L" g( p: V6 |" P
抱歉,我不确定您在谈论哪个SQL平台:7 w7 ]/ D H% G2 d" A6 U6 t" \
在MySQL中: . U) y2 o( k2 ^2 b4 u6 a$ s: p$query = ("SELECT * FROM $db WHERE conditions AND LENGTH(col_name) = 3"); . l6 i: G0 S0 s: B7 L- d% Z6 }8 a$ \在MSSQL中 5 u1 F5 V- \! W7 F- F$query = ("SELECT * FROM $db WHERE conditions AND LEN(col_name) = 3");- i( W6 R) S. Q D# G
LENGTH()(MySQL)或LEN()(MSSQL)函数将在您可以在WHERE子句中用作条件的列中返回字符串的长度。/ [- d/ K/ ^1 w* F4 d. a" @, V* J 编辑 / M8 e# A ]5 C3 _9 Z. w T我知道这确实很老,但是我想扩大答案,因为正如Paulo Bueno正确指出的那样,您很可能想要的是字符数而不是字节数。谢谢Paulo。 5 m8 }$ ~ [* d% w因此,对于MySQL,有CHAR_LENGTH()。下面的示例着重之间的差LENGTH()的CHAR_LENGTH():+ a" p% m i" B# i
CREATE TABLE words (; V8 W; t; ^: n" { F0 s" K- o0 o
word VARCHAR(100) + ~ M+ P; k( G. d% n) ENGINE INNODB DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;