如何从SQL查询中修剪特殊字符?

时间:2014-03-28 11:39:11

标签: php mysql sql

trim()用于清除所有空格。现在,我想用“'用户名”中的所有特殊字符,而不是清除空白区域。是否有像trim()这样的函数来消除特殊字符? 我的SQL查询就像

Select value from table_name where trim(username) = 'ABCD'

并返回null值。但是有一些与ABCD'相关的价值观。并在执行查询时显示所有条目

select value from table_name where username like '%ABCD%'

用户名'中没有任何其他内容可见。领域。对此有什么解决方案吗?

3 个答案:

答案 0 :(得分:2)

Mysql没有这种功能来删除特殊字符。相反,您可以使用替换功能(如果您知道什么是特殊字符)。

replace(your filed name,'_','')

答案 1 :(得分:1)

参见示例:

Select value from table_name where REPLACE(trim(username$),"$","");

如果你想用空的char替换$

答案 2 :(得分:0)

尝试此功能:

Create Function [dbo].[RemoveNonAlphaCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin

    Declare @KeepValues as varchar(50)
    Set @KeepValues = '%[^a-z]%'
    While PatIndex(@KeepValues, @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')

    Return @Temp
End

这样称呼:

Select dbo.RemoveNonAlphaCharacters('abc1234def5678ghi90jkl')

一旦理解了代码,就应该看到更改代码以删除其他字符也相对简单。你甚至可以使这种动态足以传递你的搜索模式。

参考此链接: https://stackoverflow.com/a/22684392/3242978