Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MySQL查询的SELECT部分,是否可以将列别名为AS?_Php_Mysql - Fatal编程技术网

Php 在MySQL查询的SELECT部分,是否可以将列别名为AS?

Php 在MySQL查询的SELECT部分,是否可以将列别名为AS?,php,mysql,Php,Mysql,我正在运行一个相当复杂的查询,在我更改表结构和重写其他文件之前,我想知道是否有人能告诉我这是否可行 SELECT DISTINCT(users.user_id), (resi.curr_state WHERE resi.user_id = "users.user_id") AS current_state FROM ci_users AS users, ci_residents AS resi ..... WHERE stuff HAVING current_state

我正在运行一个相当复杂的查询,在我更改表结构和重写其他文件之前,我想知道是否有人能告诉我这是否可行

SELECT
    DISTINCT(users.user_id),
    (resi.curr_state WHERE resi.user_id = "users.user_id") AS current_state
FROM
    ci_users AS users, ci_residents AS resi .....
WHERE stuff HAVING current_state = '".$php_variable_ill_use."'

如果必要的话,我很乐意分享更多的代码,但我这里的主要问题是,我可以在from之前,甚至之后,作为语句首先这样做吗

类似的方法可能会奏效:

select distinct(users.user_id),
    (select resi.curr_state 
          from ci_residents 
            AS resi_1 where resi_1.user_id = users.user_id) as current_state
FROM
    ci_users AS users, ci_residents AS resi .....
WHERE stuff HAVING current_state = '".$php_variable_ill_use."'

有一种方法可以有条件地指定列的输出,yes:使用
CASE
语句。但看起来你不是这么做的。您似乎在指定
resi
users
表之间的关系,这通常可以使用连接来完成,如下所示:

SELECT
    DISTINCT(users.user_id),
    resi.curr_state AS current_state
FROM ci_users AS users
JOIN ci_residents AS resi ON users.user_id = resi.user_id
现在,考虑到请求背后的逻辑,我假设您需要所有用户ID,但只需要存在状态的那些状态。对吗?如果是这样,请使用
左连接
来包括所有
用户
记录,并且在存在关联记录时仅包括
resi
记录


如果您试图完成的不是我在这里演示的内容,请详细说明。

警告。您的代码可能容易受到sql注入的影响。这应该是word。MySQL文档在这里有一些信息:@hakre什么?应该吗?第二栏,正如所写的,在语法上是不正确的,不是吗?至少那部分不是:
ci_resi居民…
,这就是为什么我认为查询只是一个粗略的提纲来说明问题,而不是一个修复查询的问题。是的,哈克雷是正确的,我不担心查询的其余部分…或注入。这是专门询问ASI的问题,基本上,我在搜索一个场景的成员。除了我没有列出的一系列其他条件外,我还需要在“WHERE place=state,WHERE place=country,用户在搜索表单上输入state和country作为输入,两个位置存储在同一个表中,但分配给同一个用户\u idoh wait nevermin是的,谢谢。感谢您真正回答了这个问题,而不是对一个明显的示例查询进行评论。@JohnB恕我直言,所有技能和经验水平的用户都可以使用此网站。我不清楚您是否发布了一个示例查询,因此我给出了我的评论和答案。不用担心,先生。我有点反应过度,因为当我问mysql的时候,人们似乎只是误解了我的问题,而我还没有喝咖啡。