MySQL从多个相同的表中进行选择,并使用php随机显示结果
您好,我想在我的数据库中查询多个相同的表,这些表有不同的前缀,而不是随机显示结果,但不知何故,我需要跟踪该项的来源,我不知道如何查找 我这样做是因为我没有访问信息的权限MySQL从多个相同的表中进行选择,并使用php随机显示结果,php,mysql,Php,Mysql,您好,我想在我的数据库中查询多个相同的表,这些表有不同的前缀,而不是随机显示结果,但不知何故,我需要跟踪该项的来源,我不知道如何查找 我这样做是因为我没有访问信息的权限 $query = "SHOW TABLES FROM mydb WHERE RIGHT( tables_in_mydb, 5 ) = 'table'"; $res = mysql_query($query); $num = mysql_num_rows($res); while($row = mysql_fetch_row($
$query = "SHOW TABLES FROM mydb WHERE RIGHT( tables_in_mydb, 5 ) = 'table'";
$res = mysql_query($query);
$num = mysql_num_rows($res);
while($row = mysql_fetch_row($res)) {
$numbers = explode('_', $row[0]);
if($num > 0) {
$q = "SELECT `this`, `that`, `something` FROM ".$numbers[0]."_idetinticaltables"; // :)
$r = mysql_query($q);
while($c = mysql_fetch_array($r)) {
/*display the results randomly with an identifier where the come from*/
}
}
}
您可以使用ORDER BY RAND()对其进行随机排序以下方法可能有效:
$aa=array()
while($c = mysql_fetch_array($r))
{
/*display the results randomly with an identifier where the come from*/
$aa[]=$c;
}
echo $aa; // print "Array"
SELECT
语句对于要从中选择的表都是不同的,您可以在表名中添加一个列集(以便以后可以识别它):
联合体
,所以您可以随机化整个顺序。请看,因为做得好并不是一件小事,所以上面的示例只是在那里放置了一个orderby
和LIMIT
子句。由于表中有许多条目,它将杀死服务器将$number[0]存储在某个地方,因为这会告诉您数据来自哪个表。myabe我错了,但如果您在循环外回显$aa,它将只打印数组的第一项。@LaciK:嗯,它只输出
数组
,就是这样。不是答案,不用麻烦了。这是个好主意,但如果我把结果打印出来,它只会一个表一个表地随机排列,结果会是这样的:表1按随机顺序排列,表2按随机顺序排列,表x按随机顺序排列,我想随机排列完整的结果,比如:表4,表1,表3,表2,不能在SHOW表中使用orderby,因此需要将引用放入数组,然后对这些名称使用shuffle($ar),并使用循环来显示随机结果。听起来怎么样?
(SELECT *, TABLENAME = 'first_name_of_table' FROM first_name_of_table ...)
UNION
(SELECT *, TABLENAME = 'second_name_of_table' FROM second_name_of_table ...)
UNION
...
ORDER BY RAND() LIMIT 10;