![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Web, Web 2.0 e mashups Discuta Programação Web e Web Server Administration, incluindo LAMP, Apache, MySQL, Flash, HTML, SEO, mashups e Web APIs e outros tópicos. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| Carsten's Random ramblings em MySQL, PHP, programação e outras coisas | iBot | BigAdmin Solaris RSS | 0 | 02-04-2009 02:30 |
| Mac OS X 10.5: Time Machine não voltar até AirPort Extreme AirPort Discos | iBot | OS X suporte RSS | 0 | 11-17-2008 12:10 |
| AirPort Quick Assist | iBot | OS X suporte RSS | 0 | 11-14-2008 04:50 |
| Mac OS X 10.5.5: Não é possível transformar em AirPort depois desligando-reiniciando | iBot | OS X suporte RSS | 0 | 10-27-2008 11:30 |
| Ligação ao Aeroporto rede Solaris | giax | Sun Solaris | 1 | 07-17-2007 03:05 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
MySQL: Random oferece para todos os aeroportos
Preciso de escrever um query do MySQL onde ele faz um loop através de cada aeroporto e gera 10 aleatória ofertas (é a minha mesa oferece 990.000 + linhas)
O código abaixo eu tenho obras para 1 aeroporto, mas logo que se torna maior que atrasa DIREITO baixo. Trata-se utilizando PHP / MySQL No momento, o que demora muito mais de um minuto para executar o que é muito tempo - Eu preciso muito, muito mais rápida. Alguém pode ajudar? Código:
/**
* This code takes over a minute to run. How do I make it quicker?
*/
// Get airports
$sql0 = 'SELECT airportcode FROM airports ORDER BY airportcode ASC';
$query = $this->db->query($sql0);
// Loop through airports
foreach ($query->result() as $row)
{
// Get a random offer so long as the airport matches
$sql1 = 'SELECT T.id, T.DepAirportCode
FROM offers T
JOIN (
SELECT FLOOR( MAX( id ) * RAND( ) ) AS id
FROM offers
) AS x ON T.id >= x.id
WHERE
T.DepAirportCode="'.$row->airportcode.'"
LIMIT
10';
// Loop through random offers
$query1 = $this->db->query($sql1);
foreach ($query1->result() as $row)
{
print $row->id;
print $row->DepAirportCode;
} // next
} // next
|
|
||||
|
Você precisa combinar as duas consultas em 1 consulta e de modo a que, pelo menos, a cláusula WHERE tem o seguinte aspecto:
ONDE T. DepAirportCode \u003d airports.airportcode Tenha uma leitura do presente para seleccionar aleatoriamente uma linha: SQL para Selecionar uma fila de um banco de dados aleatórios tabela |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|