搜索我想查询从特定列一些关键字和打印所有与关键词对应的列值,现在的问题是,如果我使用查询MySQL数据库的关键字中包含运营商
SELECT * FROM的候补技能,如%在技能C%,和不同的行是:
的Java,C,C++,HTML,CSS,净豆,我的Eclipse
的Java,Asp.Net,Eclipse的
C,PHP,CSS,休眠
现在,它是所有的行作为C是每一行中的子字符串,我试图使用C%,而不是%C%,但只有第三行显示,因为它以C开头,但我需要显示所有行有“C”作为另一个词,我如何搜索整个世界,建议一段代码。
import java.util.*;
import java.sql.*;
import java.io.*;
public class TokensOfString
{
public static void main(String[] args)
{
String str;
String query = "";
try
{
int i =0, cntToken =0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the keywords to be searched");
str = br.readLine();
StringTokenizer words = new StringTokenizer(str, ",");
cntToken = words.countTokens();
//System.out.println("No. of Tokens = "+cntToken);
String token[]= new String[cntToken];
while(words.hasMoreElements())
{
token[i] = words.nextToken().trim();
//System.out.println(token[i]);
i++;
}
//System.out.println(++i+" : "+words.nextElement().toString().trim());
query = "SELECT * from can_skills where skills like '"+ token[0] +"%'";
// System.out.println("Query at 34 : "+query);
if(cntToken == 1)
{
query ="";
query = "SELECT * from can_skills where skills like '"+ str +"%'";
}
if(cntToken > 1)
{
for(int j=1; j < cntToken; j++)
query = query + " or skills like '"+ token[j] +"%'";
}
System.out.println("Query at 43 : "+query);
Connection con = null;
Class.forName("com.mysql.jdbc.Driver");
String hostName = "localhost";
String port = "3306";
String userName = "root";
String password = "root";
con = DriverManager.getConnection("jdbc:mysql://" + hostName + ":" + port + "/prem", userName, password);
Statement statement= con.createStatement();
ResultSet rs = statement.executeQuery(query);
while(rs.next())
{
System.out.println(rs.getString(4));
}
}
catch(ClassNotFoundException e){ System.out.println(e); }
catch(Exception ex){ System.out.println(ex); }
}
}
谢谢,它工作 – P3M