質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

3回答

9977閲覧

sqlでの部分一致ができません

muusora

総合スコア8

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2016/07/04 07:59

編集2016/07/04 08:35

###前提・実現したいこと
sqlで部分一致をしたいのですがうまくできません。
データべースから値を引っぱって来てるのですが。このやり方だと何も表示されなくなってしまいます。なにかいいやり方ないでしょうか?
###発生している問題・エラーメッセージ

sqlでの部分一致

###該当のソースコード
<select id="SearchAcount" resultMap="Account" parameterType="String">
select emp_id, emp_name,authority from employee where emp_name LIKE ='%${empName}%' AND presence=0
</select>

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
java言語 フレームワーク spring mybatis

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

なにかいいやり方の前に、これは正しいやり方ですか?
SQLと何言語を組み合わせて使っていますか、
タグの中に直接SQLを書いて動く言語があるんですか?

投稿2016/07/04 08:13

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yona

2016/07/04 08:51

条件をすべて消すと動きますか?
guest

0

「補足情報(言語/FW/ツール等のバージョンなど)」が書かれていないので詳しく書きましょう。
が、想像するに、Javaのフレームワーク MyBatis ですかね?
LIKE ='%${empName}%' ではなく LIKE '%${empName}%'
だとどうでしょうか?

投稿2016/07/04 08:22

編集2016/07/04 08:24
dupont_kedama

総合スコア925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muusora

2016/07/04 08:34

あ、すいません... ありがとうございます。そうですMyBatisです。 試してみたのですがなにもでてこないです...
dupont_kedama

2016/07/04 08:39 編集

生成されると想定しているSQLを実際にDBMSのクライアントなどから実行すると期待している結果はでるのでしょうか。
muusora

2016/07/04 08:58

すいません、この辺初心者でDBMSというものをつかったことがなくて...
dupont_kedama

2016/07/04 20:13 編集

「DBMS」で検索してみてください。 別のSQLでは結果を得られているとのことなので、すでに使っています。 理解できたら「補足情報(言語/FW/ツール等のバージョンなど)」にDBMSの製品名とバージョンを書いてください。
guest

0

empNameはバインド変数ですか?
where emp_name LIKE ='%${empName}%'の部分を、where emp_name LIKE '%#{empName}%'としてみた場合の動作はいかがでしょうか。


↑上記訂正します。

where emp_name LIKE '%' || #{empName} || '%'
としてみてください。

投稿2016/07/04 08:43

編集2016/07/04 09:00
poyopi

総合スコア113

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muusora

2016/07/04 08:55

おそらくバインド変数です 何もでてこないです... 完全一致なら一応できるのですが...
poyopi

2016/07/04 09:02

先ほど誤回答してしまったので、修正しました。バインド変数はシングルクォートで囲ってはだめですので、'%'とはわけて記述します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問