在excel文件中,我有这样的列: 11.01-12.00,12.01-13.00,.,29.01-30.00。列的内容是价格。我想将价格存储在MySQL中的许多范围,如excel列。
我是要做这样的桌子,还是你的人有更好的方法,请引导我?
发布于 2020-12-18 04:42:41
一个选项可以是将列price_range或prices定义为json列,并将数据存储为key=>value对,例如:‘11.01-12:00’> 11.50
在表的迁移文件中,添加一列
$table->json('prices');在模型类中,指定将prices列转换为数组。
class MyModel extends Model
{
protected $casts = ['prices' => 'array'];
//... rest of the class code
}通过指定强制转换,您现在可以使用关联数组在列上存储数据,您可以在php数组中存储和更新数据。
$myModel = new MyModel;
$myModel->prices = [
'11.01-12.00' => 11.50,
'12.01-13.00' => 12.35,
//...
'29.01-30.00' => 29.82,
];
$myModel->save();更新数据
$myModel = MyModel::find(5);
$newPrices = [
'11.01-12.00' => 11.20,
'12.01-13.00' => 12.63,
//...
'29.01-30.00' => 29.05,
]
$myModel->update(['prices' => $newPrices]);
/OR to update price for a specific price range
$myModel->update(['prices->11.01-12.00' => 11.25]);Laravel博士:
发布于 2020-12-18 04:02:12
在数据库表迁移文件中,定义一个名为price的列来保存您的值。
$table->integer('price');将您的价格存储为您的货币的最低分母,执行执行数据库内/出数据库转换所需的任何算法。
没有必要为不同的价格创建单独的列。
编辑1
基于您的问题更新,即该信息位于excel文件中,您将希望使用一个包,如Laravel Excel (没有重新发明轮子)来执行您的导入。
导入excel文件这里的很好的教程
https://stackoverflow.com/questions/65351550
复制相似问题