2013-10-09 52 views
0

你好,問題是這樣的 - 有一個表modelid。字段model可以存儲由空格分隔的不同長度的幾個單詞。例如,「某些任意型號名稱」「суперпупердлинноеназваниемодели」錯誤。「我必須選擇模型名稱中至少有一個單詞長度超過22個字符的記錄。所以,第一個模型不屬於結果集,第二個模型屬於結果集。我試過,但選擇不正常。通過輸入超過20個字符的長度的單詞(在mysql中),表中的示例

SELECT id, model FROM table1 WHERE model REGEXP "[А-Яа-яa-zA-Z]{22,}" 
+0

什麼結果你得到和你期待什麼樣的結果,但沒有得到?這個查詢返回的記錄太多還是太少?它似乎對我的預期工作:http://sqlfiddle.com/#!2/d9421/1 – funkwurm

+0

例如,有一個價值模型,1)「一些var opt」,2)'forforformeme或otherforbewordvalue',我期望有第二個樣本值,因爲在第二個模型名稱中,長度超過22個字符的單詞模型名稱之一 – user2366271

+0

如果您轉到我給您的sqlfiddle鏈接,您當前的查詢確實給出了結果而不是1)結果。所以它在我看來,查詢已經工作。 – funkwurm

回答

0

試試下面的SQL與字符超過22

只檢索行... SELECT * FROM表WHERE CHAR_LENGTH(模型)> 22

+0

這不是一個選項。因爲在同一個字段中可能定位了幾個字,並且不需要確定字段的長度以及字段中最長的字。而最長的字段的長度導航。 – user2366271

0

如果更換WHERE子句使用alnum字符類我相信會給你你需要的東西:

SELECT * FROM table1 
WHERE model REGEXP "[[:alnum:]]{22,}" 

看到這個SQL Fiddle

(或者替換alpha角色職業,如果你知道模型「字」永遠包含數字,。)

+0

這裏是截圖http://listick.ru/share/wD6SI查詢(SELECT id,menutitle FROM'modx_site_content' WHERE menutitle REGEXP'[A-Za-Z] {20,}'),但如果這是在這裏是相同的查詢工作正確http://sqlfiddle.com/#! 2/766f0a/1爲什麼這種情況我無法理解。編碼表和數據庫 - utf8_general_ci – user2366271

+0

對不起,不知道我可以在那裏得到很多幫助。我希望'[:alnum:]'或'[:alpha:]'能解決任何編碼問題,但顯然不是。 – danielpsc

相關問題