gpt4 book ai didi

mysql - 如何在 mysql 查询中连接表时动态更改主键值

转载 作者:行者123 更新时间:2023-11-28 23:29:26 25 4
gpt4 key购买 nike

我正在做mysql加入过程

我有两个表用于 chat__user 和 chat_message。

聊天用户:

   id    name  socketid

1 raj 123
2 kumar 1234

聊天消息:

  id   chat_from  chat_to  message

1 123 1235 hello
2 1235 123 how can i help you?
3 123 1235 HOw track my order?

然后,John 这两个表使用“chat_message.chat_from = chat_user.socketid OR chat_message.chat_to = chat_user.socketid

我的查询:

    SELECT * FROM `chat_message` INNER JOIN `chat_user` ON chat_message.chat_from = chat_user.socketid OR chat_message.chat_to = chat_user.socketid

结果:

chat_from  chat_to  message                    id   name  socketid 

123 1235 hello 1 raj 123
1235 123 how can i help you? 1 raj 123
123 1235 HOw track my order? 1 raj 123

我需要将 id 字段值更改为自动递增。

例如:

chat_from  chat_to  message                 id   name  socketid 

123 1235 hello 1 raj 123
1235 123 how can i help you? 2 raj 123
123 1235 How track my order? 3 raj 123

建议我如何更改字段?..

最佳答案

您似乎只想添加一个序列号,这可以使用变量来完成:-

SELECT sub1.chat_from,
sub1.chat_to,
sub1.message,
@id:=@id + 1 AS id,
sub1.name,
sub1.socketid
FROM
(
SELECT chat_message.chat_from,
chat_message.chat_to,
chat_message.message,
chat_user.name,
chat_user.socketid
FROM chat_message
INNER JOIN chat_user
ON chat_message.chat_from = chat_user.socketid
OR chat_message.chat_to = chat_user.socketid
) sub1
CROSS JOIN
(
SELECT @id:=0
) sub0

但是通常您会希望在子查询中添加一个 ORDER BY 子句以尝试强制序列号所在的顺序。

也不确定您是否希望在每次聊天对话之间重置序列。

关于mysql - 如何在 mysql 查询中连接表时动态更改主键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37828914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com