Difference between revisions of "MySQL queries"
From Ilianko
(Created page with "===Избор на произволен ред:=== Най-елементарен, но бавен SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1; Сравнително бъ...") |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
===Избор на произволен ред:=== | ===Избор на произволен ред:=== | ||
− | Най-елементарен, но бавен | + | Най-елементарен, но бавен. |
SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1; | SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1; | ||
− | Сравнително бърз | + | Сравнително бърз, ако id полетата са уникални последователни числа. |
SELECT * FROM `table` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 1; | SELECT * FROM `table` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 1; | ||
− | Най-бърз метод | + | Най-бърз метод. Влючва PHP код. |
$offset_result = mysql_query( " SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `table` "); | $offset_result = mysql_query( " SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `table` "); | ||
$offset_row = mysql_fetch_object( $offset_result ); | $offset_row = mysql_fetch_object( $offset_result ); | ||
$offset = $offset_row->offset; | $offset = $offset_row->offset; | ||
$result = mysql_query( " SELECT * FROM `table` LIMIT $offset, 1 " ); | $result = mysql_query( " SELECT * FROM `table` LIMIT $offset, 1 " ); | ||
+ | |||
+ | ===Търсене на дума=== |
Latest revision as of 08:16, 5 August 2012
Избор на произволен ред:
Най-елементарен, но бавен.
SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1;
Сравнително бърз, ако id полетата са уникални последователни числа.
SELECT * FROM `table` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 1;
Най-бърз метод. Влючва PHP код.
$offset_result = mysql_query( " SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `table` "); $offset_row = mysql_fetch_object( $offset_result ); $offset = $offset_row->offset; $result = mysql_query( " SELECT * FROM `table` LIMIT $offset, 1 " );