json - 如何使用 laravel 更新 postgresql 数据库中的 json 数据?
问题描述
如何更改数据库中的下一个数据:
jsonData = [{"given_date": "2 1.05. 2002 year"}]
至
jsonData = [{"given_date": "21.05.2002"}]
解决方案
使用正则表达式更新 Postgresql:
UPDATE table
SET given_date = regexp_replace(given_date, '(\s|[a-zA-Z])', '','');
regexp_replace
根据第二个常规参数(匹配空格和字母) ,取值given_date
并被第三个参数(空字符串)替换。第四个参数是 'g(global)', 'i(ignore case)' 之类的选项;
Laravel 使用正则表达式更新:
\DB::table('tablename')
->where(...)
->update([
'given_date' => \DB::raw("regexp_replace(given_date, '(\s|[a-zA-Z])', '','')")
]);
推荐阅读
- sql - 从较新的行中选择日期
- c# - 实体框架 - 字符串列的唯一约束
- java - 无法从 START_OBJECT 令牌中反序列化 int[] 的实例
- amazon-web-services - 可选的 FilterExpression AWS
- php - PHP替换字符串的一部分并将这些替换的部分作为单独的字符串
- c# - C# ADO.NET 在外键之前写入主键
- sql-server - 使用两个表作为参考在 SQL 中计算值
- android - Android NDK 编译 Telegram 项目失败
- c# - Html.Encode class not encoding ≥ or ≤ characters
- azure-cosmosdb-sqlapi - 在 CosmosDB 中使用单个字符串值进行 ARRAY_CONTAINS 查询