みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLインジェクション時の最小値、最大値以外の取得

ascii(substring((select min(TABLE_NAME) from information_schema.tables
where TABLE_SCHEMA != 'mysql' AND TABLE_SCHEMA != 'information_schema'),2,1))>100;

↑MySQLの場合です。

前回ここで疑問に答えていただいて、このようにすることで、tablesというテーブルから、データベースinformation_schemaとmysql以外のデータベースにあるテーブルを取得できるというのはわかったのですが、上のような記述だとmin(TABLE_NAME)にあるとおり、TABLE_NAMEで並べたときの最小のものしか取得できないんです。。。

min(TABLE_NAME)のminをmaxに変えることで最大のものは取得できますが、その2つ以外のテーブル名を取得する記述(例えば2番目を取得するなど)はあるのでしょうか?
データベースの種類はMySQLでなくても良いです。

連続の質問になるのですがよろしくお願いします。。。

投稿日時 - 2007-02-06 02:28:40

QNo.2727717

すぐに回答ほしいです

質問者が選んだベストアンサー

実際にやってませんが、1度目のアクセスで min の TABLE_NAME がわかっていれば、where句に TABLE_NAME != 'xxxx' とすればとれるんじゃないでしょうか。

ダメだったらごめんなさい。

投稿日時 - 2007-02-06 10:35:12

お礼

確かにその方法でできそうですね!
私は頭がかたいみたいで全然思いつきませんでした。。。

どうもありがとうございます!

投稿日時 - 2007-02-06 14:25:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問