Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:wybierz losowy wpis, ale waż w stosunku do niektórych wpisów

Ten facet zadaje to samo pytanie. Mówi to samo co Frank, ale wagi nie wychodzą poprawnie, a w komentarzach ktoś sugeruje użycie ORDER BY -LOG(1.0 - RAND()) / Multiplier , co w moich testach dało prawie doskonałe wyniki.

(Jeśli jacyś matematycy chcą wyjaśnić, dlaczego to jest poprawne, proszę, oświeć mnie! Ale to działa.)

Wadą byłoby to, że nie można ustawić wagi na 0, aby tymczasowo wyłączyć opcję, ponieważ skończyłoby się to dzieleniem przez zero. Ale zawsze możesz to odfiltrować za pomocą WHERE Multiplier > 0 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przygotowane wyciągi PHP PDO

  2. Jak mogę przechowywać i pobierać obrazy z bazy danych MySQL za pomocą PHP?

  3. Tabela aktualizacji MySQL na podstawie innej wartości tabeli

  4. INTERSECT w MySQL

  5. Jak działa funkcja OCT() w MySQL