回答
在SQL中使用LIKE運算符模式匹配字符類時,不存在類似正則表達式的字符類的通配符重複。換句話說,你不能做這樣的事情[0-9]+
或[0-9]{1,3}
(這些也將捕獲0
)
所以,你要零墊的數量纔可以進行比較。
它不是直接在模式,但這表達部分依賴於LIKE操作,並將爲正整數工作介於1和999:
RIGHT('00' + myfield, 3) LIKE '[0-9][0-9][0-9]'
AND RIGHT('00' + myfield, 3) <> '000'
AND LEN(myfield) <= 3
編輯:假設進行你談論Microsoft SQL Server,因爲你沒有指定。
DBKS將''LIKE'[0-9] [0-9] [0-9]'工作嗎?它肯定不是標準的SQL LIKE通配符(標準SQL只能理解'%'和'_'通配符,沒有「範圍」) –
雖然並不是所有的,但很多程序在很大程度上都支持正則表達式。在MySQL中,你可以寫'WHERE num REGEXP'^ [1-9] [0-9] {1,2} $' – Hameed
@Hameed:我明白,但你的例子並沒有使用'LIKE'運算符。 –
SELECT * FROM table WHERE field BETWEEN 1 AND 999;
編輯:這將僅PostgreSQL的工作。
如果你正在尋找一個正則表達式模式匹配的字符串,然後是這樣的:
SELECT * FROM table WHERE field ~ '[1-9][0-9]{1,2}';
上regexp patterns退房文檔。
SQL Server不支持正則表達式原樣。
您可以使用以下workaround或此問題:Regular Expressions in SQL Server servers?。
- 1. 與之間的文字匹配模式
- 2. 匹配除匹配(多字)模式以外的所有字符
- 3. 正則表達式:匹配指定字符串之間的所有匹配項
- 4. Ruby模式匹配 - 查找所有可能的匹配數
- 5. 正則表達式匹配2個字符之間的所有字符串
- 6. 正則表達式:獲取匹配模式的所有匹配字符串
- 7. 模式匹配所有的HTTP錯誤
- 8. 數字模式匹配
- 9. 匹配目錄中的所有文件之間的所有行
- 10. 匹配連字符和重疊之間的所有內容?
- 11. 替換某些列之間的所有不匹配字符
- 12. 如何匹配指定字符之間的模式?
- 13. 查找匹配模式之間的字符串
- 14. 兩套之間的匹配數字
- 15. 符號之間的匹配模式,給定模式後
- 16. 如何匹配Regex中特定模式的所有匹配項?
- 17. 預浸匹配所有與模式
- 18. Regex Preg_match_all匹配所有模式
- 19. Servlet URL模式匹配所有URL
- 20. 正則表達式適用於單個字符之間的所有匹配
- 21. 正則表達式打破匹配標準之間的所有字符
- 22. 返回兩個範圍之間的所有匹配數組
- 23. 如何在匹配模式之間處理字段?
- 24. 匹配正則表達式兩個模式之間的格式
- 25. 字符之間的通配符匹配
- 26. 匹配字符串中所有模式的最佳方法?
- 27. 找到所有匹配模式的子字符串
- 28. Ruby - 匹配字符串中的所有模式
- 29. 顯示匹配字符串模式的所有服務名稱
- 30. 0到22之間的數字的HTML5輸入模式匹配驗證
並非所有DBM都遵循與模式和通配符搜索相同的標準。你需要具體。最初你的問題沒有正確的標籤。 – Hameed