我有一个在我的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附近,但是没有工作。 任何想法的家伙?
答案 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
可以在会话范围内进行更改。