select语句匹配值而不考虑非字母数字字符

时间:2016-03-17 02:25:30

标签: sql sql-server regex

在我的数据库表中,我有一个名为item_name的列。一些值如下所示:

**Item_Name**
What's UP
Yahoo!!...
Alpha!@3568Numberic`;'"

基本上我试图传达这些值中包含非字母数字字符。

我希望我的sql语句返回与行匹配的值,而不考虑非aplhanumeric字符。

例如:

select *
from mutable
where item_name = 'whats up' or 'alpha3568numeric'

此SQL语句应返回2行:

What's UP
Alpha!@3568Numberic`;'"

2 个答案:

答案 0 :(得分:0)

使用函数删除列中的所有非字母数字字符并返回输出字符串,如下所示:T-SQL strip all non-alpha and non-numeric characters [您还必须将其更改为包含0-9]

然后在你的where子句中使用类似的东西:

where lower(RemoveNonAlphaCharacters(item_name))like '%whats up%' or 
lower(RemoveNonAlphaCharacters(item_name))like '%alpha3568numeric%'

答案 1 :(得分:0)

试试这个:

select *
from mutable
where SOUNDEX(item_name) = SOUNDEX('whats up') or
SOUNDEX(item_name) = SOUNDEX('alpha3568numeric')