2010-10-04 31 views
0

create table dict {id,word varchar2(255))。如何根据长度查询字符串

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

  1. 搜索的是长度为4个字符
  2. 搜索的是长度超过4个字符
  3. 搜索具有4-8所有单词全部关键词所有关键词字符(含)
  4. 搜寻其在长度上较小比4个字符

Env的所有词:H2,MySQL的。该数据由英文单词,而是想知道的局限性,如果你使用多字节数据(例如日本)

回答

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

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

CHAR_LENGTH()文档状态清楚,

返回字符串str, 在字符测量的长度。多字节 字符计为单个 字符。这意味着,对于包含五个两字节 字符,length()返回10, 而CHAR_LENGTH()一个 字符串返回5