gpt4 book ai didi

sql - 查询字符长度的WHERE条件?

转载 作者:行者123 更新时间:2023-12-03 05:29:03 28 4
gpt4 key购买 nike

我有一个包含大量单词的数据库,但我只想选择那些字符长度等于给定数字的记录(在示例情况 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com