虽然是php和mysql的新手,但这可能看起来非常混乱。
这是我想出来的:
$query = "show tables like 'whatever%'";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
for ($i = 0; $i < $num_results; $i++)
{
$row = mysql_fetch_array($result);
$sql=mysql_query("SELECT * FROM ". $row[0] ." WHERE a=(SELECT MAX(a)) AND b=(SELECT MAX(b)) AND c LIKE 'd%' ORDER BY date DESC LIMIT 1");
while($info=mysql_fetch_array($sql)){
echo "...";
}
}
我从每个表中获得所需的值,因此x的结果取决于表的数量。我希望得到查询表的结果,但只显示按日期/时间排序的前10-5个表。
对于当前的脚本,这是可能的吗?有没有更简单的方法(同时,表的数量不断变化)?这个查询方法是数据库密集型的吗?
干杯!
发布于 2011-01-05 12:18:18
我把不断变化的具有相似结构的表的数量称为设计错误。还可以查询切换到
$sql=mysql_query("SELECT * FROM $tbl WHERE c LIKE 'd%' ORDER BY a DESC, b DESC, date DESC LIMIT 1");
对数据库来说是一个小小的解脱。
https://stackoverflow.com/questions/4600482
复制相似问题