2014-11-14 140 views

回答

4

錯誤代碼比起初看起來更具信息性。

Operand should contain 1 columns 

在你的榜樣,IF操作,而1(SELECT * FROM zd LIMIT 1),並且(SELECT * FROM zd LIMIT 3)操作數

IF語句有三個參數:布爾值,標量如果布爾值爲true,則返回值,如果布爾值爲false,則返回標量值。

您選擇的子查詢每個都返回一行。你必須只返回一個值,就像這樣:

SELECT IF(1,(SELECT col1_name FROM zd LIMIT 1) ,(SELECT col2_name FROM zd LIMIT 1)) 

在您更換col1_namecol2_name你希望從中獲取數據爲準列。

====

現在,我再次看了你的問題,我看到你實際上要做的是實現條件限制。我只想做,在PHP或任何語言,你要查詢和數據庫,如果可能的話:

$limit = $bool ? 1 : 3; 
$mysql->prepare("SELECT * FROM zd LIMIT $limit"); 
$mysql->execute(); 
$result = $mysql->fetch(PDO::FETCH_ASSOC) 

我不知道還有有條件地設置不變量的MySQL中的限制的一種方式。

相關問題