Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
Mysql 从表中选择数据_Mysql_Select - Fatal编程技术网

Mysql 从表中选择数据

Mysql 从表中选择数据,mysql,select,Mysql,Select,我有如下表名聊天 我正在尝试下面的查询,我可以得到数据 SELECT chat_detail_id,from_user_id,to_user_id,time FROM chat as c WHERE c.to_user_id='3' OR c.from_user_id='3' 但是,如果我获取用户id=3的数据(c.to_user_id='3'或c.from_user_id='3'),我希望一个具有其他_id的列名的值为from_user_id或to_user_id,而不是在我的情况下获取用

我有如下表名聊天

我正在尝试下面的查询,我可以得到数据

SELECT chat_detail_id,from_user_id,to_user_id,time FROM chat as c WHERE c.to_user_id='3' OR c.from_user_id='3'
但是,如果我获取用户id=3的数据(c.to_user_id='3'或c.from_user_id='3'),我希望一个具有其他_id的列名的值为from_user_id或to_user_id,而不是在我的情况下获取用户id是3

输出如下所示,在这一行中以红色突出显示:


任何帮助都将不胜感激

有两种方法可以解决此问题

您可以使用PHP或SQL来解决这个问题

如果您选择使用PHP

执行相同的查询,然后在获取后生成if语句

if($fetched['to_user_id'] == '3')
    $other_id = $fetched['from_user_id'];
else
    $other_id = $fetched['to_user_id'];
另一个选项是使用SQL查询执行此操作

SELECT chat_detail_id,from_user_id,to_user_id,CASE c.to_user_id WHEN '3' THEN (c.from_user_id) ELSE (c.to_user_id) END AS other_id FROM chat as c WHERE (c.to_user_id='3' OR c.from_user_id='3')

编辑:已修复,现在可以使用。

你是说其他id是另一个使用id 3说话的人吗?是的,确切地说,它是来自\u user\u id或to\u user\u id。你在做什么代码?PHP?请发布您的模式和示例数据,而不是屏幕截图。怎么有人只用屏幕截图来尝试这个呢?