0

ここに画像の説明を入力

JavaとOracleのスキルを持っている人を探したい

そして、私は次のようなコーディングを知っています

select name from table_name where skills like '%java%' or skills like '%oracle%';

しかし、私の問題は、サーブレットでこれを行うにはどうすればよいですか?

String skills=request.getParameter("skill");

私の選択クエリ

select name from table_name where skill like '"++"';

ここで私は混乱しています、私はこのように試しました

select name from table_name where skill like '"+%skills%+"';

しかし、機能していません。

私はオラクルに非常に慣れていないWeb開発者です。助けてください

私はoracle10gを使用しています

4

2 に答える 2

1
    String query = "select name from table_name";
    String skills = request.getParameter("skill");
    StringBuilder likePart = new StringBuilder("");
    boolean appendOrClause = false;
    String skillsArray[] = skills == null ? null : skills.split(",");

    if(skillsArray != null && skillsArray.length > 0 ){
        for(String skill : skillsArray){
            if(skill.trim().length() > 0){
                if(appendOrClause){
                    likePart.append(" OR skills like '%" + skill.trim() + "%'");
                } else {
                    likePart.append(" where skills like '%" + skill.trim() + "%'");
                }
                appendOrClause = true;
            }
        }
        if(likePart.toString().trim().length() > 0){
            query += likePart.toString();
        }
    }
    if(query.indexOf("like") > 0 ){
        // User have skills
        // Fire query to get User Name
    } else {
        // User doesn't have any skills
        // don't Fire any query
    }
于 2012-07-10T08:31:08.493 に答える
1

あなたは試すことができますREGEXP_LIKE

SELECT name from TABLENAME where  
WHERE REGEXP_LIKE (skills, '(Java|Oracle)');
于 2012-07-10T08:07:44.930 に答える