2013-07-23 42 views
0

我正在使用某些數據庫輸入,通過字母和數字搜索數據。我正在使用LIKE顯示alpha,除了數字輸入外,一切都很好。用於數字搜索的SQL LIKE

SELECT * FROM `product` WHERE `name` LIKE `[0-9]%` 

在我使用的通配符中是否有任何錯誤?

請注意:我正在搜索的數據是「99 T恤模型」的示例,所以基本上我只想將所有名稱以數字開頭,我不關心下一封信。

+6

'LIKE = REGEXP'!。 – Wrikken

回答

3

通常,您不能將正則表達式與通配符混合使用。使用正則表達式,例如(Oracle版本):

select * 
    from Product 
    where RegExp_Like(name, '^[0-9]') --<- Oracle version, see your DBMS regexp format, cause regular expressions are DBMS dependent 

-- Oracle: RegExp_Like(name, '^[0-9]') 
-- MySql: `name` REGEXP '^[0-9]' 

或純等,子串,比較等

select * 
    from Product 
    where (name >= '0') and (name <= '9') 
+0

我猜這是MySQL而不是Oracle。 – Phil

+1

對於MySql,正則表達式是('name' REGEXP'^ [0-9]') –