我从Mysql第4版获得了这段代码以检查表存在
SELECT * FROM table WHERE FALSE;
我完全不理解where
条款
如果我没弄错,mysql中没有布尔类型,所以基本上它被转换为
SELECT * FROM table WHERE 0;
它应该是where
条款的专栏吗?
SELECT * FROM table WHERE column = false;
任何解释都非常感谢。
答案 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>