プロが教えるわが家の防犯対策術!

マイナーなRDBS(?)なので回答をいただけるか不安ですが…

InformixのSQL文(単純なSELECT文)で、以下のような
文の場合、検索条件はどのような解釈になるのでしょうか?

select
 count(*)
from
 テーブル名
where
 カラム名 = ?

です。

要は「?」が何を示すのかが分からないのです。

matches(Oracleでいうlike)の場合、Oracleの%が*に、
_(アンダースコア)が?になるらしいのですが、
= で完全一致で繋いださいにどうなるのかが分かりません。

ちょっとした情報でもよいので、ご教授お願い致します。

A 回答 (1件)

Informixのことは知りませんが。

。。

prepareやexecute immediateで前処理して実行する(動的実行)なら、「?」を使う方法は標準SQL準拠だと思いますが?
そういうことであれば、あくまでも「列名=?」は、「=」条件であり、値を可変にしているだけです。

【例】
prepare sql識別子 from 'select count(*) from t1 where c1=? and c2=?'

変数1←値1
変数2←値2
execute sql識別子 using 変数1,変数2
(変数1が一番目の?、変数2が2番目の?に対応し、値を設定)
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ございません。

ご指摘のとおり、「?」は可変でSQLの記述の後に
using で値を入れている記述がありました。

ありがとうございました。

お礼日時:2006/08/07 20:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!