[PHP-users 19437]Re: SQL文のSELECT項目を変換する正規表現について
k.watanabe
k.watanabe @ spclink.com
2003年 12月 19日 (金) 19:08:47 JST
k-wataです。
レスありがとうございます。
中村さん
> 2回 select 文を発行するのが正しい姿じゃないかと思いますが。
> > ・「SELECT」文の項目を「COUNT」に変えて1回実行
> > ・元のSQL文に「LIMIT」句を加えて1回実行
こちらが、1つもメソッド内で2回のSQLを別々に実行して
結果も別々に取得するという意味でした。
理解しにくかった点は、申し訳ありません。
古賀さん、宇野さん
> よく落ちついて考えて下さい。この2つのSQL文は、WHERE句は共通のハズです。
> ですから、まず与えられた検索条件からWHERE句のみを組み立てるメソッドと、
> 得たい情報に応じてSQLの残りを組み立てるメソッド、を分離します。
> そして得られた結果を欲しいデータ形式で返すメソッド、を組み合わせれば、
> 自ずと解決策に至るはずです。
> そういうことなら、メソッドへの引き数にSQL文そのものを渡すのをやめて、
> 「項目」と「FROM以降」を分けて渡しましょう。悩む必要がなくなります。
まとめてですみません。
一発で解決しようとしていたため、正規表現で悩んでいました。
無理せず、段階的に切り分けて、組み合わせていく形で検討しようと思います。
今思ったのですが、SELECT項目と「FROM」の間に改行 or TAB を
入れるというルールづけをしたらどうかなぁとか・・・。
# そうすると、ヒアドキュメントでSQLを書いている方は、
# 改行が任意の個所に入ってきてしまいますね・・・。
> ちなみに、プログラミング言語処理系の理論を学ぶと分かりますが、
> SQLの構文解析は正規表現のみでは「できません」。
そうでしたか、勉強になります。
結果的に、正規表現の使用jはあきらめて別の方法を検討してみます。
ありがとうございました。
--
k.watanabe
PHP-users メーリングリストの案内