wie man Werte in diskreten Bereichen von einer DB-Tabelle erhält, unter Verwendung von SQL-Abfragen - mysql

Nehmen Sie eine DB-Tabelle mit Werten an

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]

Hinweis: Dieses Muster ist nicht erforderlich (die sortierte Reihenfolge und Werte von 1-30).

Mit einer Abfrage kann ich Werte zwischen 10-20 usw. erhalten.

Aber hier möchte ich wissen, wie ich Werte aus verschiedenen Bereichen bekommen kann. d.h.

  • ein zufälliger Wert von Bereich 0-5
  • ein Wert Formularbereich 6-10
  • ein Wert von 11-15
  • ein Wert von Bereich 16-20

... bald.

Die Ausgabe der Abfrage sieht also folgendermaßen aus:

[2,7,14,16,23,29,...]

oder

[1,6,11,18,22,26,...]

Kann ich das irgendwie erreichen?

Antworten:

2 für die Antwort № 1

Versuchen Sie es

(SELECT id as r1 FROM `t1` WHERE id between 1 and 5 ORDER BY RAND() limit 0,1)

union

(SELECT id as r1 FROM `t1` WHERE id between 6 and 10 order by RAND() limit 0,1)

union

(SELECT id as r1 FROM `t1` WHERE id between 11 and 15 order by RAND() limit 0,1)

union

(SELECT id as r1 FROM `t1` WHERE id between 16 and 20 order by RAND() limit 0,1)

union

(SELECT id as r1 FROM `t1` WHERE id between 21 and 25 order by RAND() limit 0,1)

union

(SELECT id as r1 FROM `t1` WHERE id between 26 and 30 order by RAND() limit 0,1)

Dies ist die Abfrage des angegebenen Rangs, wenn Sie es für den dynamischen Bereich erstellen möchten, müssen Sie diese Abfrage dynamisch erstellen, sobald Sie den gesamten Bereich bis N haben.