Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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左join if then语句收藏夹表过程_Php_Mysql_Variables_If Statement_User Defined - Fatal编程技术网

Php MYSQL左join if then语句收藏夹表过程

Php MYSQL左join if then语句收藏夹表过程,php,mysql,variables,if-statement,user-defined,Php,Mysql,Variables,If Statement,User Defined,我有两张桌子 这是表1,表名是 例如 项目列表 +-----+----------+-----+ | uid | username | age | +-----+----------+-----+ | 1 | doe | 17 | | 2 | smith | 18 | | 3 | john | 30 | +-----+----------+-----+ 另一个是 爱好 这是我的mysql查询*不起作用*当我运行php文件时,我

我有两张桌子
这是表1,表名是 例如

项目列表

+-----+----------+-----+  
| uid | username | age |  
+-----+----------+-----+  
|   1 | doe      |  17 |  
|   2 | smith    |  18 |  
|   3 | john     |  30 |  
+-----+----------+-----+ 
另一个是

爱好

这是我的mysql查询*不起作用*当我运行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
的列,您需要在选择列表中包含一个表达式,并为其指定别名
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
列都可以按不同的列名使用。

您想让我们为您编写代码吗?这是问题吗?对不起兄弟。。。。我只是编辑了这个问题,你不能在普通的SQL查询中使用
IF…THEN…END IF
?任何解决方案谢谢你先生你节省了我的时间你是最爱你的人。。。。我不知道为什么人们会反对我的投票……有时候,只需要一个简单的例子来说明一些事情通常是如何完成的。在我看来,你似乎做了一些研究,你尝试了一些东西,你已经准备好接受帮助。祝你好运
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