作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含大量单词的数据库,但我只想选择那些字符长度等于给定数字的记录(在示例情况 3 中):
$query = ("SELECT * FROM $db WHERE conditions AND length = 3");
但这不起作用...有人可以告诉我正确的查询吗?
最佳答案
抱歉,我不确定您所说的是哪个 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 子句中的条件。
编辑
我知道这确实很旧,但我想我应该扩展我的答案,因为正如 Paulo Bueno 正确指出的那样,您很可能需要字符数而不是字节数。谢谢保罗。
因此,对于 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 |
+--------+-----------+----------------+
如果您处理多字节字符,请小心。
关于sql - 查询字符长度的WHERE条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807231/
我是一名优秀的程序员,十分优秀!