python - 如何使用 SQL 更新单列中的某些值组
问题描述
我是 python 的新手,使用 sql 更新表。我想问一下如何使用 SQL 更新单列中的某些值组。请看下面的例子:
ID |
---|
123 |
999991234 |
235 |
789 |
200 |
999993456 |
我需要将缺少的前缀“99999”添加到没有“99999”的记录中。id 列默认为整数数据类型。我已经尝试过 sql 语句,但是我尝试过使用 cast 语句的数据类型之间存在冲突:
update tablename
set id = concat('99999', cast(id as string))
where id not like '99999%';
解决方案
为了能够使用LIKE
运算符和CONCAT()
函数,列数据类型应该是 aSTRING
或BYTE
。在这种情况下,您需要强制转换WHERE
子句条件以及SET
语句的值。
使用您的样本数据:
运行此更新脚本:
UPDATE mydataset.my_table
SET id = CAST(CONCAT('99999', CAST(id AS STRING)) AS INTEGER)
WHERE CAST(id as STRING) NOT LIKE '99999%'
结果:
行已成功更新,表以以下数据结束:
推荐阅读
- php - Codeigniter:将值从控制器解析到视图
- wordpress - 所有帖子的自定义字段值的总和
- mysql - 即使没有足够的数据,如何始终返回 3 行
- angular - 如何使用 Angular ChangeDetectionStrategy 更快地制作具有多个输入的表格?
- ios - 如何在从 api 获取数据时在完成闭包中运行闭包?
- woocommerce - 使用 save_post 钩子自动创建 Woocommerce SKU
- angular - 如何在 Angular 单元测试中获取 [class.editable] 的值?
- c# - 如何在 MassTransit 中与共享传输提供程序一起使用内存传输?
- python - 将 appium 或任何 selenium android 项目打包到 .apk 文件中
- java - 如何在同一类的不同方法中使用显式等待对象?