gpt4 book ai didi

Mysql 查询在 laravel 中不起作用

转载 作者:行者123 更新时间:2023-12-01 00:39:51 25 4
gpt4 key购买 nike

我一直在尝试从聊天表中检索 ser 发送的一些消息。我提出了一个在 phpmyadmin 中运行良好的查询。

但是当我在 Laravel 中使用相同的查询时,它不起作用。

SELECT user2,message,created_at FROM ( SELECT user2,message,created_at FROM chats WHERE user1 ='Tiffany' UNION SELECT user1,message,created_at FROM chats WHERE user2 ='Tiffany' in ( SELECT DISTINCT user2 FROM chats WHERE user1 ='Tiffany' UNION SELECT distinct user1 FROM chats WHERE user2 ='Tiffany' ) )tb2 WHERE user2 !='Tiffany' GROUP BY user2

我几乎尝试了所有方法,但还是找到了解决方案。请给我一个简短的解释,为什么上面的查询不起作用。我的聊天表的字段是

id,user1(varchar),user2(varchar),message,created_at(timestamp),updated_at(timestamp)

我使用的整个代码

    if ($pmessage = \DB::select('select user2,message,created_at
from (select user2,message,created_at from chats where user1 ='Tiffany'
union select user1,message,created_at from chats where user2 ='Tiffany'
in ( select distinct user2 from chats where user1 ='Tiffany'
union select distinct user1 from chats where user2 ='Tiffany' ))
where user2 != 'Tiffany'
group by user2')) {
return response()->json(['pmessage' => $pmessage, 'status' => 200], 200);
} else {
return response()->json(['status' => 505], 505);
}

最佳答案

我认为您需要使用 DB::raw()。像这样的东西:

$pmessage = \DB::select(\DB::raw("SELECT ..."))

此外,您需要混合引用。因此,在您的查询周围使用双引号,这样您就可以在查询使用单引号。所以你应该使用这样的东西:

$pmessage = \DB::select( \DB::raw("Select user2,message,created_at
from (select user2,message,created_at from chats where user1 ='Tiffany'
union select user1,message,created_at from chats where user2 ='Tiffany'
in ( select distinct user2 from chats where user1 ='Tiffany'
union select distinct user1 from chats where user2 ='Tiffany' ))
where user2 != 'Tiffany'
group by user2')"));

关于Mysql 查询在 laravel 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35673511/

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