2012-08-07 39 views
1

我認爲它很容易,但我找不到我想要做這樣的事情在查詢中選擇特定數量的列值

if(!$user_logged) 
{ 
$q = "select `id` , 0 as choice from tbl1"; 
} 
else 
{ 
$q = "select tbl1.id , tbl2.choice as choice from tbl1 join tbl2 ON .... "; 
} 

我想選擇與搜索

答案0作爲選擇,如果用戶沒有登錄,所以我就不需要做額外加入 ,但我得到

Unknown column '0' in 'field list' 
+0

'選擇id,0作爲tbl1的選擇對我來說看起來像是一個有效的查詢。你確定這會產生錯誤嗎? – 2012-08-07 12:12:34

+0

稍微改變你的查詢需求@ max.I已經發布了答案。 – 2012-08-07 12:16:21

+0

@ypercube是它需要單引號 – max 2012-08-07 12:21:00

回答

0

嘗試此查詢: -

SELECT id,'0' AS Choices FROM tbl1 ; 
0

我不知道如果這是你在找什麼,但給這個在ry:

SELECT id AS choice FROM tbl1 WHERE id=0 
0

如果你已經知道你想要什麼值(0)你爲什麼要讓SQL返回它?只需使用0而不是解析查詢中的值。

+0

我將結果直接發送到模板,我不想更改模板 – max 2012-08-07 12:13:21

1

的錯誤(你展示)產生的唯一方法,就是如果你有這個在您的查詢:

select id , `0` as choice from test ; 
     ---^ ^------ 
     ------------ notice the backticks there 

讓它:

select id , 0 as choice from test ; 

並且查詢是有效的,MySQL將不會發生錯誤。

如果你想在PHP返回的字符串(彷彿在CHAR()VARCHAR()choice列),你想從查詢的2個版本一致的結果,則使用單引號:

select id , '0' as choice from test ; 
相關問題