@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

SQLの質問

投稿者投稿内容
ハナ
会議室デビュー日: 2003/11/20
投稿数: 5
投稿日時: 2003-11-20 18:44
このスレッドに関係なくて申し訳ありません。

SQLにおいて、「&」を文字として認識させるにはどうしたらよいのでしょうか?
たとえば「'」を認識させるためには2つ続けて「''」と入力するとか
そういう対処法を知っている方がいらっしゃったら教えてください。
Crime
常連さん
会議室デビュー日: 2002/08/26
投稿数: 34
お住まい・勤務地: Japan
投稿日時: 2003-11-20 18:49
where 内容 Like '%&%'

これですかね?

raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-11-20 18:51
文字列型の場合は
必ず '(クォーテーション)で囲みますので
問題ないと思います
ハナ
会議室デビュー日: 2003/11/20
投稿数: 5
投稿日時: 2003-11-21 09:42
ご回答ありがとうございます。

raystarさんからいただいた「'」で囲むというご意見、
試してみましたが「&」のところで値が切れてしまうみたいで
思ったとおりの結果が出ませんでした。

Crimeさんからいただいたものでうまくいきましたー。
ただこれでうまくいったところで新たな問題が出てしまうのが、
「%」そのものをマッチングさせるときにはどうするのか。

具体的に、フォームに任意に入力した値を使って自動的にSQLを
作って実行するといったものを作りたいので、
なるべく場合わけがない方法(Likeを使ったり=をつかったりとか)が
あったら教えていただきたいと思います。
ゆう
ベテラン
会議室デビュー日: 2003/06/20
投稿数: 56
投稿日時: 2003-11-21 10:17
こんにちわ。お世話になっております。

引用:

ハナさんの書き込み (2003-11-21 09:42) より:
ご回答ありがとうございます。

Crimeさんからいただいたものでうまくいきましたー。
ただこれでうまくいったところで新たな問題が出てしまうのが、
「%」そのものをマッチングさせるときにはどうするのか。



Oracleしかしらないのですが

LIKE '%&\%%' ESCAPE '\\'

とエスケープしてあげれば%もマッチさせることができます。

#SQLServerでも使えるのかな?


[ メッセージ編集済み 編集者: ゆう 編集日時 2003-11-21 10:19 ]
ハナ
会議室デビュー日: 2003/11/20
投稿数: 5
投稿日時: 2003-11-21 10:33
ゆうさん、ありがとうございます!思い通りにできました。
申し送れましたが私もOracle環境です。
これまで曖昧にしていたメタ文字、エスケープの使い方がよくわかりました。
本当にありがとうございます。
たるたる
会議室デビュー日: 2003/09/29
投稿数: 16
投稿日時: 2003-11-21 10:43
もしよろしければ環境を教えていただけないでしょうか?
(SQLをどのように実行しているか、データプロバイダを使用?種類は?)

SQLだけで見ると、raystarさんの対応で問題ありません。
OracleのSQL*PLUSやSQLServerにツールを使用して直接 項目='&'を含む
SQLを実行できます。

where 内容 Like '%&%'
は、常に全件検索で項目内もサーチするためレスポンスが悪くなります。
ハナ
会議室デビュー日: 2003/11/20
投稿数: 5
投稿日時: 2003-11-21 11:44
たるたるさん、新たな情報ありがとうございます。

私は素人で環境といわれても的確にお答えできるかわかりませんが、
今テスト用に使っていたのはインストールしたままのSQL*PLUSです。
直接&を指定できるツールがあるのですか。

今はSQL*PLUSを使ってましたが、後々はASPでSQLをたたくかんじに
したいと思っています。
そのツールというのはあくまでもSQL*PLUSで適用されるものですか?

スキルアップ/キャリアアップ(JOB@IT)