1

mysql 语句是否可以从任何表中选择任何字段?例如: SELECT * FROM * WHERE ? IN (SELECT * FROM *)实现不依赖于特定表或字段的通用搜索方法。我刚刚读到我们可以使用 SQL 命令列出数据库的所有表:SHOW TABLES 您对我们如何做到这一点有任何想法吗?谢谢 :)

4

2 回答 2

0

You could try something like this in php

$getTables = mysql_query("show tables");
$tmpString = '';
while ($table_data = mysql_fetch_row($getTables))
{
    $tmpString.=$table_data[0].',';
}   
$ALL_DATABASE_TABLES = substr($string,0,strlen($tmpString)-1); //Remove the last ,

Then you got all your tables and you can build your query

like this

$qry = "SELECT * FROM $ALL_DATABASE_TABLES" 
于 2012-10-23T17:48:57.650 回答
0

创建一个过程并使用动态查询机制,例如:

 CREATE PROCEDURE dynamicQuery()
  BEGIN
  SET @tableName := 'TABLENAME1';
  SET @SqlStr = 'SELECT  * FROM @tableName';
  PREPARE n_StrSQL FROM @SqlStr;
  EXECUTE n_StrSQL;
  DEALLOCATE PREPARE n_StrSQL;
 END
于 2012-10-23T17:43:56.290 回答