2010-10-04 61 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