从表

时间:2016-04-30 11:29:21

标签: mysql select

我的表名聊天如下

enter image description here

我正在尝试以下查询我可以获取数据

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')我想要一个具有other_id的列名称具有值from_user_id或to_user_id除了在我的情况下获取用户ID是3

以下输出以红色突出显示此s other_id行:

enter image description here

任何帮助都将非常感谢

1 个答案:

答案 0 :(得分:1)

可以有两种方法来解决这个问题。

您可以使用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')

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