Java 忽略查询中的区分大小写和空格
我使用jdbc从mysql数据库中选择数据。我正在执行搜索查询Java 忽略查询中的区分大小写和空格,java,mysql,jdbc,Java,Mysql,Jdbc,我使用jdbc从mysql数据库中选择数据。我正在执行搜索查询 stmt.executeQuery("SELECT (NAME) FROM tablename WHERE FULLNAME LIKE '"+"a string'""); 如何执行不区分大小写和空格的搜索?可以通过使用sql语法ucase(全名)和ucase(a.string)来实现区分大小写的搜索。在比较之前,您将两者转换为大写 SELECT (NAME) FROM tablename WHERE upper(FULLNAME)
stmt.executeQuery("SELECT (NAME) FROM tablename WHERE FULLNAME LIKE '"+"a string'"");
如何执行不区分大小写和空格的搜索?可以通过使用sql语法
ucase(全名)
和ucase(a.string)
来实现区分大小写的搜索。在比较之前,您将两者转换为大写
SELECT (NAME) FROM tablename WHERE upper(FULLNAME) LIKE upper('"+"a string'""))
您还可以使用
TRIM('"+"a string'"")
我不确定但你可以试试这个, 选择用户 来自用户
其中UPPER(用户)=UPPER('anand') 在查询中,可以使用函数lower()将字符串转换为小写,或使用函数upper()将字符串转换为大写,使用函数trim()删除开头和结尾的多余空格 您的查询将如下所示
stmt.executeQuery("SELECT (NAME) FROM tablename WHERE LOWER(FULLNAME) LIKE TRIM(LOWER('"+"a string"'))");
您可以在mysql中使用,在应用程序端可以使用String.toUpperCase()
例如:
stmt.executeQuery("SELECT (NAME) FROM tablename WHERE UPPER(FULLNAME) LIKE '" + a.toUpperCase() +"'");
要替换字符串中的所有空格(TRIM不会替换中间的空格),可以使用replace。类似于以下的方法应该可以工作:
SELECT (NAME) FROM tablename
WHERE lower(replace(FULLNAME,' ','')) LIKE lower(replace(yourstring,' ',''))
下面是一个完整的示例:
create table foo (col1 varchar(100))
insert into foo (col1) values ('The Dog is sick')
SELECT col1 FROM foo
WHERE lower(replace(col1,' ','')) LIKE lower(replace('the doG iss icK',' ',''))
这将返回:
The Dog is sick
虽然这可能有效,但更完整的答案还应该提到如何处理空白、字符集和排序规则。我完全同意你,马特!所以我的答案不应该得到任何学分,而应该是其他的。
SELECT (NAME) FROM tablename WHERE upper(trim(FULLNAME)) LIKE upper(trim(string))