PHP SQL - 随机选择1行,其中ID = x

时间:2012-10-01 11:51:56

标签: php mysql database random

我有一个MySQL数据库,我需要一个PHP来拉随机行。我已成功创建

$query = "SELECT * FROM $usertable
          WHERE region='UK'          
          ORDER BY RAND() LIMIT 1";

这成功地随机拉了一排;但是,它不仅限于region=2

我需要能够:

  1. region=UK
  2. 时随机抽取
  3. region=UK或##
  4. 时随机抽取

    (其中##实际上是另一个区域,例如,YK =约克郡)

    基本上我需要它来随机选择行,但仅限于region=UK

    region是我fields/collumns之一的标签,而UKVARCHAR的内容,其中包含多行。

    我将其余代码排序。

    我有一个简单的数据库和php如下:

    <?php
    //Sample Database Connection Syntax for PHP and MySQL.
    //Connect To Database
    $hostname="carbonmarketing.db.9606426.hostedresource.com";
    $username="MarketReadOnly";
    $password="Read0nly1";
    $dbname="carbonmarketing";
    $usertable="ClientList";
    $advertfooter = "advertfooter";
    mysql_connect($hostname,$username, $password) or die ("<html>%MINIFYHTML4333ddb1f6ba50276851b9f9854a5c817%</html>");
    mysql_select_db($dbname);
    # Check If Record Exists
    $query = "SELECT * FROM $usertable
              WHERE region='UK'          
              ORDER BY RAND() LIMIT 1";
    $result = mysql_query($query);
    if($result)
    {
        while($row = mysql_fetch_array($result))
        {
            $advertfooter = $row["$advertfooter"];
            echo "$advertfooter";
    
        }
    }
    ?>
    

    但是,它只是随机抽取region列的所有值

    请告诉我是否有助于您查看数据库。

2 个答案:

答案 0 :(得分:2)

制作和阵列你的地区并将其摧毁:

$region = array('UK', 'YK');
$implode = implode("', '", $region);
$query = "SELECT * FROM `".$usertable."` WHERE `region` IN ('".$implode."') ORDER BY RAND() LIMIT 1";

答案 1 :(得分:1)

$query = "SELECT * FROM $usertable
          WHERE region IN ('UK','YK')          
          ORDER BY RAND() LIMIT 1";