如何mysql随机选择表名

时间:2015-06-02 09:03:54

标签: mysql

也许我在这里遗漏了一些东西。我试图从只有数字/数字的数据库中随机选择一个表名。这是我得到的但是当测试运行查询时,mysql告诉我我的查询不正确。我非常感谢你能得到的任何帮助!

$sql = "SHOW TABLES FROM `master` WHERE TABLES is NUMERIC ORDER BY RAND() LIMIT 1";
$result = mysql_query($sql);

1 个答案:

答案 0 :(得分:2)

我不确定您是否可以使用show table获取结果。

但是,你绝对可以使用information_schema来实现相同的

SELECT * FROM information_schema.tables WHERE TABLE_SCHEMA = 'master' 
AND CAST(TABLE_NAME AS UNSIGNED) <> 0 
 ORDER BY RAND() LIMIT 1;

要抑制截断数据警告,请使用regexp

使用以下查询
SELECT * FROM information_schema.tables WHERE TABLE_SCHEMA = 'master' 
AND TABLE_NAME REGEXP '^(-|\\+)?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+|[0-9]+)$'
 ORDER BY RAND() LIMIT 1;