mysql - order by: if two or more result match with limit 1 then randomize -
select * my_database order priority desc limit 1
my_database:
name | priority ################## dave | 100 pat | 100 jo | 99
1: what's deciding factor when there's 2 possible results , limit set 1?
2: can add randomization between 2 possible matches? how?
1: what's deciding factor when there's 2 possible results , limit set 1?
unless specify ordering primary key (or combination of fields make clear db how order), cannot predict of 2 possible results display. database engine determine that.
i tried query (example: http://www.sqlfiddle.com/#!9/e2df77/2) select * test order priority desc limit 1
, pat showed up. tried select * test priority = 100 order priority desc limit 1
, dave showed up. moral: don't count on results unless tell database unambiguously how order information.
2: can add randomization between 2 possible matches? how?
you can order query using rand()
.
select * test priority = 100 order priority desc, rand() desc limit 1
a variant of above can used randomization. order rand()
or order field, rand()
work.
Comments
Post a Comment