回答

收藏

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

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

我有一个包含大量单词的数据库,但是我只想选择那些字符长度等于给定数字的记录(在示例情况3中):; r3 y' t7 b, d5 }& E4 A0 R
$query = ("SELECT * FROM $db WHERE conditions AND length = 3");6 Z6 y3 B; e# g
但这不起作用…有人可以向我显示正确的查询吗?
- r4 Z+ P8 a# r: U) R# X) J                0 S7 h2 d7 D  d% f; m* X- p4 ?
解决方案:1 o3 `5 D6 M' e7 Q
               
- x3 x& U2 t" n" l; q4 M% r
: Q+ t# i  L9 z& C/ Y  K. u1 B+ S6 B% k- V" b" x0 g7 R0 C+ d
                抱歉,我不确定您在谈论哪个SQL平台:) X5 n+ C  C5 M6 g9 @( k1 |; R/ ?! r
在MySQL中:
9 ?+ C  [/ l6 l4 m- \& Y# S$query = ("SELECT * FROM $db WHERE conditions AND LENGTH(col_name) = 3");; \; |, B+ t7 {7 y- W5 ^
在MSSQL中
" Y2 a. x9 j. d1 D' L. M5 p$query = ("SELECT * FROM $db WHERE conditions AND LEN(col_name) = 3");3 D% Q0 S. K2 {2 D# C1 u
LENGTH()(MySQL)或LEN()(MSSQL)函数将在您可以在WHERE子句中用作条件的列中返回字符串的长度。
7 v/ ?# V$ [6 K* t) g8 V编辑; `9 {6 R, B8 t/ U$ Z3 K0 l
我知道这确实很老,但是我想扩大答案,因为正如Paulo Bueno正确指出的那样,您很可能想要的是字符数而不是字节数。谢谢Paulo。8 ?( \- _& k! i, n; @
因此,对于MySQL,有CHAR_LENGTH()。下面的示例着重之间的差LENGTH()的CHAR_LENGTH():
0 y* z5 {! n+ @. A! B2 j1 nCREATE TABLE words (% u" Z; x7 V9 D
    word VARCHAR(100)
9 p5 L- s+ H# W# z$ ~: i2 ~) ENGINE INNODB DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则