0
如何解決?IF -condition ERROR 1241(21000):操作數應該包含1列
mysql> SELECT IF(1,(SELECT * FROM zd LIMIT 1) ,(SELECT * FROM zd LIMIT 3));
ERROR 1241 (21000): Operand should contain 1 column(s)
mysql>
謝謝。
如何解決?IF -condition ERROR 1241(21000):操作數應該包含1列
mysql> SELECT IF(1,(SELECT * FROM zd LIMIT 1) ,(SELECT * FROM zd LIMIT 3));
ERROR 1241 (21000): Operand should contain 1 column(s)
mysql>
謝謝。
錯誤代碼比起初看起來更具信息性。
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_name
和col2_name
你希望從中獲取數據爲準列。
====
現在,我再次看了你的問題,我看到你實際上要做的是實現條件限制。我只想做,在PHP或任何語言,你要查詢和數據庫,如果可能的話:
$limit = $bool ? 1 : 3;
$mysql->prepare("SELECT * FROM zd LIMIT $limit");
$mysql->execute();
$result = $mysql->fetch(PDO::FETCH_ASSOC)
我不知道還有有條件地設置不變量的MySQL中的限制的一種方式。