---
title: "Hjälp med random och sql."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/140964-hjälp-med-random-och-sql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ConnyFox"
published: "2006-01-15T20:32:46.000Z"
updated: "2006-01-16T18:49:53.000Z"
replies: 6
views: 558
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/140964-hjälp-med-random-och-sql"
---

# Hjälp med random och sql.

## #1 — ConnyFox, 2006-01-15T20:32Z

har följande sql fråga

MySQL = "Select \* from produkter where id \<\> '" & storsaljare & "' Order by rand() DESC LIMIT 1"
set RS = connect.Execute(MySQL)

Nu så har jag även en tabellkolumn som heter multiplier som vanligtvis är tom men om den innehåller en 2:a så vill jag att den produkten skall slumpas ut dubbelt så ofta, en trea = tre gånger så ofta, fyra = fyra gånger så fta osv. hur löser jag detta?

Permalänk: https://www.webforum.nu/p/140964

## #2 — voigtann1, 2006-01-16T10:14Z

rekomendera guffas exempel:
<http://guffa.com/Programming_article.asp?id=37>

Permalänk: https://www.webforum.nu/p/1746935

## #3 — voigtann1, 2006-01-16T10:22Z

missförstod dig nog lite  :r fundera på adrotater hur MS har gjort det :e får nog återkomma med något annat svar :e

Permalänk: https://www.webforum.nu/p/1746936

## #4 — Engine^, 2006-01-16T14:29Z

Du behöver nog skapa en temporär tabell först som innehåller ditt urval med dubletter, tripplar och så vidare. Sedan väljer du slumpmässigt ur den tabellen.

Permalänk: https://www.webforum.nu/p/1747123

## #5 — UffeVäxjö!, 2006-01-16T17:45Z

Ett förslag:

SELECT DISTINCT IIF(multiplier IS NULL, 1 , multiplier ) FROM produkter 

RecSet.GetRows()

Loopat igenom arrayen och bygg upp en ny array. 
Antalet samma element ska spegla hur stor sannolikhet en träff ska vara för den multipliern

Typ "IS NULL","=2","=2","=3","=3","=3","=3","=4","=4","=4","=4","=4","=4"

Slumpa den nya arrayen

Frågat på nytt

SELECT \* from produkter where multiplier  " & arry(Cint( slumptal )) & " Order by rand() DESC LIMIT 1

/Uffe

Permalänk: https://www.webforum.nu/p/1747249

## #6 — LarsG, 2006-01-16T18:02Z

Skapa en tabell med en kolumn av typen int. Fyll den med värden från 1 till något som åtinstone är lika stort som din största multipler

```
select produkter.* from produkter cross join integers 
 where integerColumn <= coalesce(multiplier,1) 
Order by rand() DESC 
LIMIT 1
```

Det vore bättre att lagra värdet 1 och inte null i multiplierkolumnen.

Flyttas från ASP.

Permalänk: https://www.webforum.nu/p/1747257

## #7 — ConnyFox, 2006-01-16T18:49Z

Skall kolla på era lösningar.

ja självfallet så blir inte detta den kanske bästa lösningen men så blir det när man skall modifiera gammal kod och måste använda sig av befintliga databaser.

Permalänk: https://www.webforum.nu/p/1747270

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/140964-hjälp-med-random-och-sql
