从表中的mysql随机数选择错误

时间:2014-06-22 09:27:23

标签: php mysql

我有一个在我的localhost mysql服务器上运行良好的查询,但是当我在我的php脚本上运行它作为查询时,得到" random_number"作为查询错误。我想选择0到50之间的随机数,这个数字在我的seat_number表中不存在     这是我的查询:     有没有人有任何想法?

$result = mysql_query("SELECT FLOOR(RAND() * 50) + 0  AS random_number
FROM seat_number WHERE "random_number" NOT IN (SELECT Seatno FROM seat_number) ");
while($row5 = mysql_fetch_array($result)){
            $numQuestion = $row5['random_number'];
       }

我曾尝试使用和不使用""在random_number附近,但是没有工作。 任何想法的家伙?

2 个答案:

答案 0 :(得分:0)

使用not exist尝试这样的事情:

   SET @rand = FLOOR(RAND() * 50) + 0;
SELECT *
FROM
  (SELECT @rand) AS random_number
WHERE NOT EXISTS
    (SELECT Seatno FROM seat_number
      WHERE seat_number = @rand);

答案 1 :(得分:0)

在标准SQL中,双引号用于引用标识符(表,列......),但MySQL有一种奇怪的方式来遵守标准:

  • 默认情况下,它会忽略它并使用双引号作为字符串文字
  • 您可以更改设置并使其显示符合标准

您显然使用了两个具有不同双引号语义的服务器。

您需要更改的设置为sql_mode,更具体地说是ANSI_QUOTES值。值得庆幸的是,sql_mode可以在会话范围内进行更改。