gpt4 book ai didi

mySQL "select"通过 JDBC 区分大小写,但通过命令行不区分大小写

转载 作者:行者123 更新时间:2023-11-30 23:23:22 25 4
gpt4 key购买 nike

我正在尝试通过 JDBC 使用 mySQL 搜索我的数据库。当我使用这个语句时:

SELECT * FROM tablename WHERE name='joe';

它执行不区分大小写的搜索并返回任何包含“Joe”或“joe”的行,这正是我想要的。我运行了 select collat​​ion(version()),这返回了“utf8_general_ci”,这显然应该是不区分大小写的。但是,当我在我的 Java 小程序中使用 JDBC 运行相同的查询时,它会进行区分大小写的搜索。这是我的 query2 函数:

try {
Vector<Vector<String>> out = new Vector<Vector<String>>() ;
Connection con = connect() ;
Statement statement = con.createStatement() ;
System.out.println( "SQL: " + s ) ;
ResultSet rs = statement.executeQuery(s) ;
while( rs.next() )
{
String r = rs.getString(1) ; // RS is indexed from 1
Vector<String> q = new Vector<String>() ;
for( int i = 2 ; i <= tableSize ; i ++ )
{
q.add(r) ;
r = rs.getString(i) ;
}
q.add(r) ;
out.add(q) ;
}
con.close() ;
return( out ) ;
} catch (SQLException e) {
System.err.println( "SQL EXCEPTION" ) ;
System.err.println( s ) ;
e.printStackTrace();
}

这是调用 query2select 函数:

public static Vector<Vector<String>> select( String table , List<String> columns , List<String> values )
{
String statement = "SELECT * from `" + table + "` WHERE " ;
for( int i = 0 ; i < columns.size(); i ++ )
{
statement += columns.get(i) + "='" + values.get(i) + "'" ;
if( i + 1 < columns.size() )
statement += " AND " ;
}
statement += " ;" ;
return query2 ( statement , tableSize(table) ) ;
}

知道如何让这个查询不区分大小写吗?

最佳答案

事实证明,我认为使用select 函数的搜索实际上使用了不同的函数。此功能是从数据库中选择所有内容并在客户端对其进行排序。我测试了 select 函数,它实际上不区分大小写,无需使用任何给出的提示(但感谢您的建议!)。

关于mySQL "select"通过 JDBC 区分大小写,但通过命令行不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com