gpt4 book ai didi

mysql - 如何在 Laravel 中运行复杂的 sql 查询

转载 作者:可可西里 更新时间:2023-11-01 07:39:33 26 4
gpt4 key购买 nike

我有一些复杂的 SQL,它由一系列非查询语句组成,它们使用 MySql 中的临时表,然后在末尾使用 SELECT 语句返回结果。

例如

DROP TABLE IF EXISTS temp_foo;

CREATE TEMPORARY TABLE IF NOT EXISTS temp_foo AS (
SELECT *
FROM foo
);

SELECT * from temp_foo;

我怎样才能在 Laravel 的一个数据库调用中运行所有这些并获得最后一个 SELECT 语句的结果?

我试过在 laravel 中做这样的事情,但它给了我一个 MySql 语法错误,这很奇怪,因为当我直接在 MySQl 中运行它时,确切的 sql 工作正常。

DB::select("

DROP TABLE IF EXISTS temp_foo;

CREATE TEMPORARY TABLE IF NOT EXISTS temp_foo AS (
SELECT *
FROM foo
);

SELECT * from temp_foo;

");

关于如何使这项工作有任何想法吗?

最佳答案

您需要使用 DB::raw() 来使您的查询工作,例如:

DB::select(DB::raw("
DROP TABLE IF EXISTS temp_foo;
CREATE TEMPORARY TABLE IF NOT EXISTS temp_foo AS (
SELECT *
FROM foo
);
SELECT * from temp_foo;
"));

我认为甚至可以简单地使用 selectRaw() 但我不确定。此外,您可以像这样从 temp_foo 中选择所有行:

DB::table('temp_foo')->get();

关于mysql - 如何在 Laravel 中运行复杂的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26784078/

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