Mysql 用于忽略特殊字符呈现类似结果的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)

是否有人可以向我推荐一个可以实现以下功能的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) 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需要
=
,而不是像
那样的
<代码>替换(替换(替换(字段))=替换(替换(字符串))