回答

收藏

查询字符条件在哪里条件?

技术问答 技术问答 262 人阅读 | 0 人回复 | 2023-09-14

我有一个包含大量单词的数据库,但是我只想选择那些字符长度等于给定数字的记录(在示例情况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;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则