
やりたい事
mysqlで、DBを使わず、sqlで複数行の結果を得たいです。
目的は3000行程度のサンプルをsqlのみで作る事です。
(なお業務等ではなく、"このような事は出来るのか?"という勉強用です。なのでDBを使う代替案はご遠慮下さい)
環境
mysql 8.0.17
例
例えば、これで1行の結果が得れます。
mysql> select "A" as c1; +----+ | c1 | +----+ | A | +----+
3行程度ならこれでいけます。
mysql> (select "A" as c1,"B" as c2) union (select "C", "D") union (select "D","E"); +----+----+ | c1 | c2 | +----+----+ | A | B | | C | D | | D | E | +----+----+
流石にこれ以上はやってられないので、できれば自動生成したいです。
条件
下記は不可
の条件です。下記は避けて実施したいです。
- 既に存在するテーブルをselectして、そこから表示を生成する
- ストアドプロシージャを利用する
- テンポラリテーブルを利用する
- シェル等で長文のsqlを自動生成する
妙な条件があるのは、力技っぽくて後学の為にならなそう、と判断したからです。
また今後仕事に使う事があるのなら、システムに変更が必要だったりするものも除きたいです。
一応joinで倍々に増やした後、limitで減らす、というのも考えたのですが、
もっとスマートな方法があるのでは、と期待しています。
よろしくおねがいします。
追記
なんか相当ズレた質問だったようで、すみません。
自分がやりたいのは、
mysql> select MD5(RAND()); +----------------------------------+ | MD5(RAND()) | +----------------------------------+ | 6fc47216844543da2c587b4465781e29 | +----------------------------------+
これを色々SQLを弄ると
+----------------------------------+ | MD5(RAND()) | +----------------------------------+ | 6fc47216844543da2c587b4465781e29 | | 14d745e539e89ba748d3c63293a5e686 | | 8b0c4ee93625d523850e79be293c796e | | a5c1f346e7c20e35fb10a6d54789fba4 | +----------------------------------+
こんな感じの出力が得れるのでは、と思ってた次第です。
回答6件
あなたの回答
tips
プレビュー