如何在 laravel 查询生成器中为 sql 选择列添加别名?

     2023-03-14     227

关键词:

【中文标题】如何在 laravel 查询生成器中为 sql 选择列添加别名?【英文标题】:How can I alias sql select columns in laravel query builder? 【发布时间】:2022-01-23 00:21:30 【问题描述】:

我有一个这样的查询,我不确定如何为每个表的选择列设置别名。你能帮我解决这个问题吗?

$columns = array_merge(json_decode($data->columns), json_decode($data->columns2));

$result = DB::table($data->type)
                    ->select($columns)
                    ->join('tabs', 'data.id', '=', 'tabs.id')
                    ->get();

【问题讨论】:

$columns的值是多少 【参考方案1】:

要回答您的问题,请像在 SQL 中一样添加 AS newColumnName

->select(['name AS title', 'email AS emailAddress']).

此外,您真的不想像这样将未经处理的表名和列名传递给您的查询。它们没有被 Laravel 清理,是一个潜在的漏洞。更多信息可以在https://laravel.com/docs/8.x/queries#where-clauses的标注框中找到

从 cmets 中我得出的结论是,您希望从 $data->columns 中选择列,并为它们设置别名,就像它们在 $data->columns2 中一样。我也不知道数据结构,但我认为你的意思是这样的:

$select = array_map(
    function($column, $alias) 
        return "$column AS $alias";
    , 
    $data->columns,
    $data->columns2
);

var_dump($select);

这是一个沙盒:http://sandbox.onlinephpfunctions.com/code/12487b8f2d590aa9f0d7a6cb0d7d4f1f067b4cb0

【讨论】:

这并不能真正回答我的问题:( 我误解了这个问题吗?您是在问如何在选择列时使用别名? 但是对于列作为变量传递的特定情况 我告诉你,你真的不应该 :) 但如果你真的想......我会更新我的答案。 谢谢你! :)

如何在 laravel 查询生成器中为同一列构建多个条件的查询?

】如何在laravel查询生成器中为同一列构建多个条件的查询?【英文标题】:Howtobuildqueryformultipleconditionforsamecolumninlaravelquerybuilder?【发布时间】:2022-01-0115:41:47【问题描述】:我想从\'plan_validity\'为null或大于今天日期的\'user\'表... 查看详情

如何在查询生成器 laravel 中执行此 SQL

】如何在查询生成器laravel中执行此SQL【英文标题】:HowcanIdothisSQLinQuerybuilderlaravel【发布时间】:2017-09-2804:34:45【问题描述】:如何在查询构建器laravel中执行此SQLselectDoctor_idfromdoctorswhereDoctor_idNOTIN(SELECTDoctor_idfromreport_reviewersWHERER... 查看详情

如何在 Laravel 7 中为单选按钮设置表单标签

】如何在Laravel7中为单选按钮设置表单标签【英文标题】:HowtosetformlabelsforradiobuttonsinLaravel7【发布时间】:2020-11-1020:02:11【问题描述】:我有一些单选按钮,我想要这样的功能:当按下标签时,单选按钮也会被选中-我认为这是... 查看详情

如何将 sql 转换为查询生成器 laravel

】如何将sql转换为查询生成器laravel【英文标题】:howtoconvertsqltoquerybuilderlaravel【发布时间】:2021-04-3007:15:39【问题描述】:谁能帮我将此SQL转换为查询生成器!SELECTtopwords.*,mw.wordASmy_wordFROMtopwordsLEFTJOIN(SELECTDISTINCTwords.wordFROMdefinit... 查看详情

Laravel 如何生成 SQL 查询

】Laravel如何生成SQL查询【英文标题】:HowLaravelgeneratesSQLqueries【发布时间】:2019-08-2909:07:13【问题描述】:我创建了一对多的关系。这是模型类。classPhotoextendsModelpublicfunctionuser()return$this->belongsTo(\'App\\User\');classUserextendsAuthentic... 查看详情

我如何将 SQL 原始查询重写为 Laravel 查询生成器

】我如何将SQL原始查询重写为Laravel查询生成器【英文标题】:HowicanrewriteSQLrawqueryintoLaravelQueryBuilder【发布时间】:2020-10-1108:01:30【问题描述】:我有完美的postgresql查询select"exhibitions_artworks".*,"curator_rating"."curator_id","curator_rating"."... 查看详情

如何将此 sql 查询转换为 laravel 查询生成器

】如何将此sql查询转换为laravel查询生成器【英文标题】:HowtoConvertthissqlqueryintolaravelquerybuilder【发布时间】:2017-06-0108:11:51【问题描述】:选择t.product_id,t.on_hand,t.created_at来自tablet,(SELECTMAX(purchase_id)aspIdFROMtableGroupbyproduct_id)tg其... 查看详情

如何修复 laravel 5.5 中的查询生成器错误 sql 注入 *

】如何修复laravel5.5中的查询生成器错误sql注入*【英文标题】:Howtofixquerybuildererrorsqlinjectioninlaravel5.5.*【发布时间】:2021-01-1214:33:34【问题描述】:我正在使用laravel5.5。*我正在使用vega扫描仪进行测试,并得到SQL注入错误。如何... 查看详情

将 PHP SQL 转换为 Laravel 查询构建器 [重复]

...到Laravel的查询。我如何将以下SQL字符串放入Laravel的查询生成器中,谢谢。$sqlQuery="SELECTtopic 查看详情

如何在 laravel 4.2 中为特定类别任务自动生成序列号?

】如何在laravel4.2中为特定类别任务自动生成序列号?【英文标题】:Howtoauto-generatesequencenumberforparticularcategorytaskinlaravel4.2?【发布时间】:2015-11-0605:17:16【问题描述】:*对不起,我不知道怎么问这个问题。例子-categoryname/categorysh... 查看详情

如何在laravel eloquent中为左连接表起别名

】如何在laraveleloquent中为左连接表起别名【英文标题】:Howtoaliasaleftjoinedtableinlaraveleloquent【发布时间】:2018-09-0414:19:44【问题描述】:基本上我有一种情况,我在laravel查询中创建了两个左外连接,现在我想选择两列并为它们放... 查看详情

如何在laravel中为每个用户生成唯一的随机值并将其添加到数据库中

】如何在laravel中为每个用户生成唯一的随机值并将其添加到数据库中【英文标题】:Howtogenerateuniquerandomvalueforeachuserinlaravelandaddittodatabase【发布时间】:2015-04-1522:51:27【问题描述】:我正在开发一个活动组织网站。在这里,当用... 查看详情

如何在 laravel 中为每个用户生成唯一的自动增量值并将其添加到数据库中

】如何在laravel中为每个用户生成唯一的自动增量值并将其添加到数据库中【英文标题】:Howtogenerateuniqueautoincrementvalueforeachuserinlaravelandaddittodatabase【发布时间】:2020-02-0609:23:25【问题描述】:我正在开发一个活动组织网站。在... 查看详情

Laravel - 查询生成器 - 使用 LPAD 语句的 SQL 字段

】Laravel-查询生成器-使用LPAD语句的SQL字段【英文标题】:Laravel-QueryBuider-SQLfieldsusingLPADstatement【发布时间】:2021-12-0814:53:47【问题描述】:我无法在QueryBuilder中重试此查询:selectid,lpad(number,12,0),lpad(int,2,0)fromusers;我怎么能,在示... 查看详情

如何在 SQL 中为选择查询创建索引?

】如何在SQL中为选择查询创建索引?【英文标题】:HowtocreateindexforselectqueryinSQL?【发布时间】:2022-01-1713:14:19【问题描述】:我有一个查询如下,需要为XYZ字段创建索引,能否在select语句中创建索引:SELECTABC,CASEWHENBISNULLANDCISNOTNU... 查看详情

Laravel 查询构建器 - 如何按别名分组,或进行原始 groupBy

...0421:45:51【问题描述】:我的Laravel5应用包含一个动态查询生成器,用于运行报表。我需要一些groupby条款并且遇到了问题。如果我在那里使用实际的sql,我可能会遇到问题,因为有时在sql中需要一 查看详情

如何在 laravel 的查询生成器中使用 with

】如何在laravel的查询生成器中使用with【英文标题】:HowtousewithinQueryBuilderinlaravel【发布时间】:2021-11-0208:01:39【问题描述】:我正在尝试使用slug在2个表之间获取数据,当我使用Eloquent时,一切都很好,但是如何在查询生成器中... 查看详情

Laravel 4 查看sql查询

】Laravel4查看sql查询【英文标题】:Laravel4viewsqlquery【发布时间】:2013-12-0321:08:35【问题描述】:在使用Laravel时,我们会这样查询:$user=DB::table(\'users\')->where(\'name\',\'John\')->first();如何查看生成的sql查询?这对于开发过程中... 查看详情