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?请发布您的模式和示例数据,而不是屏幕截图。怎么有人只用屏幕截图来尝试这个呢?