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'
4

4 回答 4

1

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

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

做了:

select id , 0 as choice from test ;

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

如果您想在 PHP 中返回一个字符串(就像choiceaCHAR()或列中的VARCHAR()列)并且您希望从查询的 2 个变体中获得一致的结果,请使用单引号:

select id , '0' as choice from test ;
于 2012-08-07T12:30:27.020 回答
0

我不确定这是否是你要找的,但试试这个:

SELECT id AS choice FROM tbl1 WHERE id=0
于 2012-08-07T12:10:27.640 回答
0

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

于 2012-08-07T12:12:08.753 回答
0

试试这个查询:-

SELECT id,'0' AS Choices FROM tbl1 ;
于 2012-08-07T12:13:25.537 回答