2013-07-23 44 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]') –