在查询中选择特定数字作为列值

时间:2012-08-07 12:08:07

标签: mysql

我认为这很简单,但我找不到搜索的答案

我想做这样的事情

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'

4 个答案:

答案 0 :(得分:1)

产生错误(显示)的唯一方法是,如果您在查询中有这个:

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

成功:

select id , 0 as choice from test ;

并且查询有效且MySQL不会抛出任何错误。

如果您想要在PHP中返回一个字符串(就像choiceCHAR()列中的VARCHAR()列一样)并且您想要查询的两个变体的一致结果,那么请使用单引号:

select id , '0' as choice from test ;

答案 1 :(得分:0)

我不确定这是否是您正在寻找的,但请尝试一下:

SELECT id AS choice FROM tbl1 WHERE id=0

答案 2 :(得分:0)

如果你已经知道你想要什么值(0)你为什么要让SQL返回呢?只需使用0而不是解析查询中的值。

答案 3 :(得分:0)

尝试此查询: -

SELECT id,'0' AS Choices FROM tbl1 ;