MySQL显示数据库中除一个以外的表

MySQL显示数据库中除一个以外的表,mysql,Mysql,因此,我有一个完整的工作页面来显示数据库中所有可用表的下拉列表。但是,我希望它显示除一个表以外的所有表的列表(因为其中一个表包含我不希望显示的用户信息…) 有办法做到这一点吗 这是我到目前为止得到的代码部分。。。 $sql=“显示来自$dbname的表”; $result=mysql\u查询($sql) if(!$result){ echo“数据库错误,无法列出表\n”; echo'MySQL Error:'.MySQL_Error(); 出口 } if(mysql\u select\u db(

因此,我有一个完整的工作页面来显示数据库中所有可用表的下拉列表。但是,我希望它显示除一个表以外的所有表的列表(因为其中一个表包含我不希望显示的用户信息…) 有办法做到这一点吗

这是我到目前为止得到的代码部分。。。 $sql=“显示来自$dbname的表”; $result=mysql\u查询($sql)

if(!$result){
echo“数据库错误,无法列出表\n”;
echo'MySQL Error:'.MySQL_Error();
出口
}
if(mysql\u select\u db($dbname,$conn))
{
?>
试试这个:

SELECT table_name FROM information_schema.tables  
WHERE table_schema = 'your_data_base_name'  
AND table_name NOT LIKE '%USER_TABLE%'; 
没有相似项

SELECT table_name FROM information_schema.tables  
WHERE table_schema = 'your_data_base_name' AND table_name <> 'USER_TABLE'; 
从information\u schema.tables中选择table\u name
其中table_schema='your_data_base_name'和table_name'USER_table';

另一种选择是在构建选项列表时避免输出有问题的表:

<?php
while ($row = mysql_fetch_row($result)) {
    if ($row[0] != 'my_private_table_name') {
        echo '<option value="'.$row[0].'">'.$row[0].'</option>';
    }
}
?>

您可以在showtables语句中使用where子句

诀窍是知道showtables语句生成的列的名称,因为它的名称取决于您的数据库名称。列的名称将是“TABLES_in{your_dbname}”。因此,如果您的数据库名称是“blah”,则列名将是“TABLES_in_blah”

因此,如果要从结果集中忽略的表称为“secret_table”,则可以执行如下语句:

SHOW TABLES WHERE tables_in_blah <> 'secret_table';
SHOW TABLES WHERE tables_in_blah NOT LIKE '%secret_table%';
SHOW TABLES WHERE tables_in_blah NOT LIKE '%secret_table%';