Mysql 如何查询数据库以检索数据,而不考虑数据库记录中的空格

Mysql 如何查询数据库以检索数据,而不考虑数据库记录中的空格,mysql,sql,oracle,Mysql,Sql,Oracle,嗨,我最近正在开发一个应用程序,在这个应用程序中,我应该从数据库中检索数据,而不考虑单词之间的空格数,即 如果从应用程序到数据库的输入字符串是“Chennai Campus”[不带任何空格],但数据库中的实际值是“Chennai Campus”[中间有一个或多个空格],则仍然可以检索它 当前Iam正在使用以下查询 从CAMPUS\u NAME=?所在的CAMPUS中选择CAMPUS\u ID 在哪里?指示应用程序在运行时提供的值。这允许在两侧使用偶数空格: SELECT CAMPUS_ID FR

嗨,我最近正在开发一个应用程序,在这个应用程序中,我应该从数据库中检索数据,而不考虑单词之间的空格数,即

如果从应用程序到数据库的输入字符串是“Chennai Campus”[不带任何空格],但数据库中的实际值是“Chennai Campus”[中间有一个或多个空格],则仍然可以检索它

当前Iam正在使用以下查询

从CAMPUS\u NAME=?所在的CAMPUS中选择CAMPUS\u ID


在哪里?指示应用程序在运行时提供的值。

这允许在两侧使用偶数空格:

SELECT CAMPUS_ID FROM CAMPUS WHERE replace(CAMPUS_NAME,' ','') = replace(?,' ','')
SELECT CAMPUS_ID FROM CAMPUS 
WHERE replace(CAMPUS_NAME,' ','') = replace(?,' ','')
试试这个:

 SELECT CAMPUS_ID 
   FROM CAMPUS 
  WHERE replace(CAMPUS_NAME,' ','') = replace(:parameter,' ','') ;

请注意,到目前为止提供的所有答案都不会使用您在
CAMPUS\u NAME
列中可能有的任何索引。如果存在大型数据集,您的查询可能性能不太好。您可以通过创建一个基于函数的索引来缓解这一问题,该索引删除了
CAMPUS
表的
CAMPUS\u NAME
列上的空格。