如何使用PHP获取此SQL查询返回的行:
SET @r := (SELECT ROUND(RAND() * (SELECT COUNT(*) FROM mytable)));
SET @sql := CONCAT('SELECT * FROM mytable LIMIT ', @r, ', 1');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
将$query
设置为等于上述值,然后执行通常的mysql_query($query)
不会返回任何结果。
这样做看看它是否有效
mysql_query('SET @r := (SELECT ROUND(RAND() * (SELECT COUNT(*) FROM mytable)));');
mysql_query('SET @sql := CONCAT('SELECT * FROM mytable LIMIT ', @r, ', 1');');
$resource = mysql_query('PREPARE stmt1 FROM @sql;EXECUTE stmt1;');
不要忘记在第二条指令中转义 sql