Mysql 用于忽略特殊字符呈现类似结果的SQL查询
是否有人可以向我推荐一个可以实现以下功能的SQL查询: 特殊字符Mysql 用于忽略特殊字符呈现类似结果的SQL查询,mysql,sql,sql-server,database,Mysql,Sql,Sql Server,Database,是否有人可以向我推荐一个可以实现以下功能的SQL查询: 特殊字符、\u和'应列出相同的结果 例如: 如果搜索123_456,系统还应找到123456和123.456和12_3456和123456.7和\u 123.456 如果您搜索12345,系统还应该找到123_456我将替换所有字符,将其转换为INT并在FilterCol上进行筛选 WITH CTE AS ( SELECT CAST (REPLACE (REPLACE (ColA, '-', ''), '.', '') AS INT)
、
\u
和'
应列出相同的结果
例如:
如果搜索123_456
,系统还应找到123456
和123.456
和12_3456
和123456.7
和\u 123.456
如果您搜索
12345
,系统还应该找到123_456
我将替换所有字符,将其转换为INT并在FilterCol上进行筛选
WITH CTE AS
(
SELECT CAST (REPLACE (REPLACE (ColA, '-', ''), '.', '') AS INT) AS
FilterCol, ColA
FROM TableA
)
SELECT * FROM CTE WHERE FilterCol >= 0
使用替换并包含所有特殊字符。试试这个
SELECT * FROM tablename WHERE
REPLACE(REPLACE(REPLACE(columname,'_',''),'.',''),',','') LIKE '%123456%'
选择一个
mysql
或sql server
?考虑如下功能。使用常规表达式将鼠标悬停在添加到问题中的SQL
标记上可能会出现重复。它解释了SQL的不同方言做不同的事情。除非您选择MySQL
或SQL Server
,否则将不会有正确的答案,因为它们做的事情不同。假设使用SQL Server,我认为他实际上也要求在搜索模式上进行替换(具体给出了搜索'123_456'
应该找到'12_3456'
)在那之后,它有点模棱两可,但我认为OP需要=
,而不是像那样的<代码>替换(替换(替换(字段))=替换(替换(字符串))