假设我们使用的是Laravel的查询构建器:

$users = DB::table('really_long_table_name')
           ->select('really_long_table_name.id')
           ->get();

我正在寻找与此SQL等效的SQL:

really_long_table_name AS short_name

当我必须键入大量SELECT和WHERES时(或者通常我也将别名包括在SELECT的列别名中,并且GET在结果数组中使用),这将特别有用.没有任何表别名,我要输入的内容要多得多,所有内容的可读性也会大大降低.在腊肠文档里找不到答案,有什么 idea 吗?

推荐答案

Laravel支持AS的表和列的别名.试试看

$users = DB::table('really_long_table_name AS t')
           ->select('t.id AS uid')
           ->get();

让我们用一个很棒的tinker工具来看看它的实际应用

$ php artisan tinker
[1] > Schema::create('really_long_table_name', function($table) {$table->increments('id');});
// NULL
[2] > DB::table('really_long_table_name')->insert(['id' => null]);
// true
[3] > DB::table('really_long_table_name AS t')->select('t.id AS uid')->get();
// array(
//   0 => object(stdClass)(
//     'uid' => '1'
//   )
// )

Php相关问答推荐

Symfony序列化程序未序列化所有类字段

通过激活模板在数据库中创建表

ForHumans函数中的月当量与单位限制

在Laravel Eloquent中实现一对多关系

使用PHP curl的Amazon SP API批处理调用

不包括WooCommerce中单独销售的产品

如何在PHP中出现弃用警告时触发错误?

如何使用php一次更新两个数据库中的MySQL表

在WooCommerce上克隆订单时使用`add_product()`添加产品元数据

SFTP在PHP(phpseclib3\Net\SFTP)-过滤目录列表结果服务器端可能吗?类似于psftp中的LS命令?

使用HPOS过滤WooCommerce中的订单列表

dyld[45923]:未加载库:/usr/local/opt/libavif/lib/libavif.15dylib

根据页面以及是否在促销,向 WooCommerce 中显示的价格添加前缀

如何在 Laravel 中app文件夹之外的文件夹内创建文件路径?

需要以一种形式执行两个操作

WordPress 分页无法正常工作

在特征中使用类的属性

图像未在 Laravel Ajax Crud 中显示

我需要一个正则表达式模式来获取在不包含特定字符串后面的模式中的文本

在 WordPress 中使用 $wpdb 运行 MySQL 事务是否安全?