2012-03-27 70 views

回答

4
查询中

你可以使用()函数下的字符串为小写或上转换()将字符串转换为大写和修剪()删除在开头和结尾过多空间。

您的查询将是这个样子

stmt.executeQuery("SELECT (NAME) FROM tablename WHERE LOWER(FULLNAME) LIKE TRIM(LOWER('"+"a string"'))"); 
-1

Incasesensitive搜索可以通过使用SQL语法ucase(FULLNAME)ucase(a.string)你都转化为大写比较

+0

虽然这可能工作,一个更完整的答案也应该提如何处理空白,字符集和归类。 – 2012-03-27 12:48:25

+0

我绝对和你在一起,马特!所以我的答案不应该得到任何学分,而应该得到其他学分。 – Daxcode 2012-03-27 17:29:27

+0

为什么我会对此产生负面影响? – Daxcode 2012-04-02 14:14:53

1

为了解决分歧的情况下才可以实现,你可以做

SELECT (NAME) FROM tablename WHERE upper(FULLNAME) LIKE upper('"+"a string'"")) 

你也可以摆脱尾随空格的使用

TRIM('"+"a string'"") 
0

我不确定但您可以试试这个, SELECT user FROM users WHERE UPPER(user)= UPPER('anand');

1

你可以在MySQL中使用UPPER(),并在应用端,String.toUpperCase();

例如:

stmt.executeQuery("SELECT (NAME) FROM tablename WHERE UPPER(FULLNAME) LIKE '" + a.toUpperCase() +"'"); 
1

要替换字符串中的所有空白(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 
1
SELECT (NAME) FROM tablename WHERE upper(trim(FULLNAME)) LIKE upper(trim(string))