我有两个表
这是表1表名外汇样本
项目清单
+-----+----------+-----+
| uid | username | age |
+-----+----------+-----+
| 1 | doe | 17 |
| 2 | smith | 18 |
| 3 | john | 30 |
+-----+----------+-----+
另一个是
fav
+-----+------+---------+
| uid | user | itemuid |
+-----+------+---------+
| 1 | alex | 2 |
+-----+------+---------+
以下是我的mysql查询*NOT Working*当我运行php文件时,我在mysql语法中遇到了错误
SELECT c.uid, c.username, c.age,i.uid,i.user,i.itemuid
from itemlist c
left join fav i on c.uid = i.itemuid
if (i.user = 'alex') THEN
SET @fav = 1;
ELSE
SET @fav = 0;
END IF
这是示例php
while ($row = mysqli_fetch_array($res)){
if ($row['fav'] = '1'){
echo $row['username']." is exit in fav";
}else{
echo $row['username']." is not exit in fav";
}
}
我希望你能理解我的问题,对吗?
若要在结果集中返回名为fav
的列,需要在SELECT列表中包含一个表达式,并为其提供别名fav
。
目前还不清楚为什么您需要MySQL用户定义的变量;如果你不知道为什么你需要一个,那么你可能就不需要了。
假设您的PHP代码正在结果集中查找一个名为fav
的列,那么您可能想要这样的内容:
SELECT c.uid
, c.username
, c.age
, i.uid AS i_uid
, i.user
, i.itemuid
, IF(i.user='alex',1,0) AS fav
FROM itemlist c
LEFT
JOIN fav i ON i.itemuid = c.uid
请注意,原始查询有两个名为uid
的列;如果您希望同时返回这两个,并且能够通过列名引用这两个名称,则需要为每个名称指定不同的名称。在上面的查询中,我为i.uid
列分配了一个别名,这样两个uid
列都可以通过不同的列名使用。