是否可以使用mysql语句从任何表中选择任何字段?
例如 :
SELECT * FROM * WHERE ? IN (SELECT * FROM *)
实现通用搜索方法,该方法不依赖于特定的表或字段。我刚刚读到我们可以使用SQL命令列出数据库的所有表:SHOW TABLES
你对我们怎么做这个有什么想法吗?
谢谢:))
答案 0 :(得分: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
答案 1 :(得分:0)
你可以在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 ,
然后你得到了所有的表,你可以构建你的查询
像这样$qry = "SELECT * FROM $ALL_DATABASE_TABLES"