1

このようなテーブルがあります。

Name    c1  c2  c3  c4

one      1   2   3  4 
one      3   1   7  6
one      5   9   2  5
one      2   5   1  8
two      1   4   2  6
two  etc.....

条件名が1に等しい列をランダムに選択したい。

結果はこのようになるはずです..

c1 (This column will selected randomly)
1
3
5
2
4

4 に答える 4

3

シンプルにいかがでしょうか、

 select <col_name> from <table_name> where name = 'one';
于 2013-02-06T06:38:24.053 に答える
1
      SELECT <col_name> FROM <table_name> WHERE name = 'one' ORDER BY RAND() Limit 1
于 2013-02-06T06:48:03.367 に答える
1
select <col_name> from <table_name> where name = 'one' order by newid();

order by newid() 関数呼び出しは、返される行をランダム化するのに役立ちます。

于 2013-02-06T06:45:07.357 に答える
0

あなたの DBMS がわからないので、テーブルからランダムに列を選択する DBMS に依存しないクエリを次に示します。

SELECT
   CASE round(3*rand()+1)
      WHEN 1 THEN c1
      WHEN 2 THEN c2
      WHEN 3 THEN c3
      WHEN 4 THEN c4 
   END;
FROM
   <table_name>
WHERE 
   name = 'one'

どこ

round()引数を丸める関数です。

round(1.23) = 1
round(-1.58) = -2

rand()vの範囲でランダムな値を生成する関数です0 <= v < 1.0

rand() => 0.123687466
rand() => 0.996574545
于 2013-02-06T09:49:41.610 に答える