如何根据字符串的长度查询字符串

时间:2010-10-04 09:34:37

标签: mysql database

create table dict {id,word varchar2(255))。

我在'word'字段中存储不同长度的字符串。如何查询以下情况: -

  1. 搜索长度为4个字符的所有单词
  2. 搜索长度大于4个字符的所有单词
  3. 搜索所有包含4-8个字符(包括)的单词
  4. 搜索所有长度小于4个字符的单词
  5. 环境:h2,mysql。数据由英语单词组成,但如果您使用多字节数据(例如日语)

    ,则想知道这些限制

2 个答案:

答案 0 :(得分:1)

SELECT
  *
FROM
  dict
WHERE
  LENGTH(word) = 4 /* 1. */
  OR (LENGTH(word) > 4) /* 2. */
  OR (LENGTH(word) >=4 AND LENGTH(word) <= 8) /* 3. */
  OR (LENGTH(word) <4) /* 4. */

/* Choose the right WHERE clause, based on your case */

对于多字节数据,您应使用CHAR_LENGTH代替LENGTH

答案 1 :(得分:1)

您可以优化问题并解释documentation中字符串函数中不清楚的内容。

CHAR_LENGTH()文档明确指出

  

返回字符串str的长度,   用字符衡量。一个多字节   角色算作单身   字符。这意味着对于   包含五个双字节的字符串   字符,LENGTH()返回10,   而CHAR_LENGTH()返回5。