sql >> Database >  >> RDS >> Mysql

Wat is de snelste manier om 2 kolommen uit hetzelfde (willekeurige) record in MySQL te selecteren?

Standaard disclaimer over SQL-injectie. Dit zou moeten werken, maar ik heb het niet geprobeerd:

// Get the number of rows in the table
$count = mysql_fetch_assoc(mysql_query('SELECT COUNT(`id`) AS `count` FROM `table`'));
// Use those to generate a random number
$rand = rand(1,$count['count']);
// Select the two columns we need, and use limit to set the boundaries
$query = 'SELECT `firstName`, `favoriteFood` FROM `table` LIMIT '.$rand.',1';
// Run the query
if(($result = mysql_query($query)) !== FALSE) {
    // Dump the result into two variables
    list($firstname, $favoritefood) = mysql_fetch_assoc($result);
    // Echo out the result
    echo 'A boy named '.$firstname.' likes '.$favoritefood;
}


  1. Welsprekend de rij met de maximale waarde vinden met groeperen

  2. Mysql-limiet met in-statement

  3. Waarom wordt het gebruik van kolomalias in dezelfde selectie niet ondersteund in Oracle en Mysql?

  4. MySql LEFT JOIN met COUNT