我正在开发一个功能,我的网站上的用户可以互相发送消息。我查找了如何执行此操作并找到可供下载的代码,现在正在使用它。我理解它的大部分含义,我插入自己的变量并解密它,但我发现了一个我以前从未见过的数据库的SELECT函数。
//We check if the recipient exists
$dn1 = mysql_fetch_array(mysql_query('select count(id) as recip, id as recipid,
(select count(*) from pm) as npm from Users where username="'.$recip.'"'));
我已经看过SELECT函数,但从未使用过单词as
或括号。有人能告诉我这些事情到底在做什么吗?它是将它们设置为变量还是什么?这是导致问题的唯一代码行。
答案 0 :(得分:1)
基本上该行的作用是
recipid
pm
npm
中的行数并将其分配给{{1}}。 所有这些都与 WHERE
子句中指定的条件有关选中 ALIASES https://dev.mysql.com/doc/refman/5.1/en/identifiers.html
这个用于 SUBQUERIES https://dev.mysql.com/doc/refman/5.1/en/subqueries.html
答案 1 :(得分:0)
以下是细分:
select count(id) as recip
选择尚未声明的表的行数并为其指定'recip'的别名
id as recipid
为id列指定了recipid的别名
(select count(*) from pm) as npm
子查询选择pm表的rowcount并为其指定别名npm
from Users where username="'.$recip.'"'
指定要查询的表和条件。 (其中,用户名栏= $ recip的值)