确定表存在

时间:2012-02-07 20:55:33

标签: mysql

我从Mysql第4版获得了这段代码以检查表存在

SELECT * FROM table WHERE FALSE;

我完全不理解where条款 如果我没弄错,mysql中没有布尔类型,所以基本上它被转换为

SELECT * FROM table WHERE 0;

它应该是where条款的专栏吗?

SELECT * FROM table WHERE column = false;

任何解释都非常感谢。

3 个答案:

答案 0 :(得分:2)

不,它不必将列作为操作数:)

当您打开mysql select manual而不是expressions时,您会发现simple_expr应该是WHERE 1(约booleans}之类的条件,但我知道它可以令人困惑(并且很少使用没有列的条件)。

当你执行SELECT * FROM table WHERE FALSE;时,基本上就是这样:

if there's table `table`
    return 0 rows (minimal database overhead) and valid resource
else
    return false

只需查看mysql_query的返回值。

答案 1 :(得分:0)

检查表的存在

$sql="SELECT * FROM $table";
$result=mysql_query($sql);
if (!$result)
{
// table does not exist
}

回答您的问题:

where子句用于检索给定表中列的值。例如,如果您的表包含两列(user_id,user_name),则查询可能如下所示:

 $sql="SELECT * FROM $table where user_id = 1";

最后,您可以阅读有关where条款at this link

的更多信息

答案 2 :(得分:0)

我假设MySQL 4.x支持ANSI。如果是这样,您可以尝试以下方法:

SELECT count(*) 
FROM information_schema.tables 
WHERE table_schema = <schema-or-db-name> 
AND table_name = <table-or-view-name>