我這一段代碼從MySQL第4版以檢查表存在確定表存在
SELECT * FROM table WHERE FALSE;
我不能挺下站在where
條款。
如果我不是弄錯存在的MySQL沒有布爾類型,所以基本上被轉換爲
SELECT * FROM table WHERE 0;
而且它應該是一個where
條款列?
SELECT * FROM table WHERE column = false;
任何解釋,非常感謝。
我這一段代碼從MySQL第4版以檢查表存在確定表存在
SELECT * FROM table WHERE FALSE;
我不能挺下站在where
條款。
如果我不是弄錯存在的MySQL沒有布爾類型,所以基本上被轉換爲
SELECT * FROM table WHERE 0;
而且它應該是一個where
條款列?
SELECT * FROM table WHERE column = false;
任何解釋,非常感謝。
不,它不需要必須有列操作:)
當您打開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
。
檢查對錶的存在
$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
我假設MySQL 4.x支持ANSI。如果是的話,你可以嘗試以下方法:
SELECT count(*)
FROM information_schema.tables
WHERE table_schema = <schema-or-db-name>
AND table_name = <table-or-view-name>
介意解釋投票嗎?如果這個答案缺乏,我會很樂意擴展任何一點。 – 2012-02-07 21:00:57
當我讀到你的答案並且downvoted時,它只有第一部分,它沒有回答這個問題(這也是檢查一個表是否存在的一種非常低效的方法)。現在看看你的編輯,你還沒有真正回答這個問題,這個問題是關於沒有列的where子句的含義。 – 2012-02-07 21:39:29
@Paul off topic - 我也來自紐約州奧爾巴尼:) – 2012-02-07 21:43:08