- - PR -
大文字でも小文字でもどちらでも検索できるLIKE演算子の書き方
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-08-02 11:46
お世話になります。
環境: Windows XP H2 DataBaseEngine Java(Seasar2) 現在、テキストボックスにキーワードを入力して、 そのキーワードで本のタイトルをテーブルから検索するアプリケーション を作っているのですが、次のようなSQLを書きました。 select bookSpec.title, author.author, book.shelfNumber, book.rowNumber, book.status from bookSpec, author, book where bookSpec.id=author.bookSpecId and bookSpec.id=book.bookSpecId and lower(bookSpec.title) like '%' || /*keyWord*/'Java' || '%' このLIKE演算子の書き方では、小文字を入力した場合は検索できますが、 大文字ではできませんでした。 大文字でも小文字でもどちらでも検索できるようにするには どうすればいいでしょうか? ご教授いただけたらありがたいです。 よろしくお願いいたします。 | ||||
|
投稿日時: 2007-08-02 12:35
大文字でも小文字でもどちらでも検索、というのは大文字小文字区別せずに、ということですよね?
片方だけlowerしてるからひっかからないのであって、両方lowerすることはできませんかね? | ||||
|
投稿日時: 2007-08-02 14:12
ベルさん、ご返信ありがとうございました。
>大文字でも小文字でもどちらでも検索、というのは大文字小文字区別せずに、ということですよね? そうです。 > 片方だけlowerしてるからひっかからないのであって、両方lowerすることはできませ >んかね? 両方lowerするとは、どういうことでしょうか? and lower(bookSpec.title) upper(bookSpec.title) like '%' || /*keyWord*/'Java' || '%' というよなことでしょうか? これでは、エラーになってしまいました。 [ メッセージ編集済み 編集者: kokansetu 編集日時 2007-08-02 14:14 ] [ メッセージ編集済み 編集者: kokansetu 編集日時 2007-08-02 14:25 ] | ||||
|
投稿日時: 2007-08-02 14:36
ここの'Java'という所をよく見て考えてみて解決できませんか? (lowerの意味がわかっていない?) | ||||
|
投稿日時: 2007-08-02 18:36
H2 DataBaseEngine とやらをよく知らないのですが lower(bookSpec.title) upper(bookSpec.title) と並列に書くことは許されているのでしょうか?(どういう意味になるんだろう) 私が言ったのはlikeの後にあるやつもlowerしてみたらどうか、ということです。 | ||||
|
投稿日時: 2007-08-02 20:30
冬寂さん、べるさん、ご返信ありがとうございました。
おかげさまで and lower(bookSpec.title) like lower('%' || /*keyWord*/'Java' || '%') でうまくいきました。 ありがとうございました。 >えっと、なぜupperがでてきたのでしょう。 >H2 DataBaseEngine とやらをよく知らないのですが >lower(bookSpec.title) upper(bookSpec.title) >と並列に書くことは許されているのでしょうか?(どういう意味になるんだろう) 意味はありません。闇雲に書いてしまいました。 ご迷惑をおかけしました。 |
1