使用一个简单的查询替换 SQLite 数据库所有列中的字符串
Replace string in all columns of a SQLite database using one simple query
是否可以使用一个简单的查询来替换 SQLite 数据库所有列中的给定字符串?
假设我有一个 table 包含四列姓名、年龄、收入和朋友:
+------+-----+--------+---------+
| name | age | income | friends |
+------+-----+--------+---------+
| John | 20 | 10 | 0 |
+------+-----+--------+---------+
| Jane | 25 | 20 | 0 |
+------+-----+--------+---------+
| June | 20 | 40 | 20 |
+------+-----+--------+---------+
并且我想使用一个简单的查询将整个 table 中的所有“20”实例替换为“40”。类似于:
UPDATE table SET ALL-COLUMNS = 40 WHERE ALL-COLUMNS = 20
这可以用SQLite实现吗?还是我必须为每一列创建一个查询?
UPDATE table SET age = 40 WHERE age = 20
UPDATE table SET income = 40 WHERE income = 20
UPDATE table SET friends = 40 WHERE friends = 20
使用三个 UPDATE 语句是最简单的解决方案。
通过使用 CASE expressions:
可以使用单个 UPDATE 语句
UPDATE MyTable
SET age = CASE age WHEN 20 THEN 40 ELSE age END,
income = CASE income WHEN 20 THEN 40 ELSE income END,
friends = CASE friends WHEN 20 THEN 40 ELSE friends END
WHERE age = 20
OR income = 20
OR friends = 20
是否可以使用一个简单的查询来替换 SQLite 数据库所有列中的给定字符串?
假设我有一个 table 包含四列姓名、年龄、收入和朋友:
+------+-----+--------+---------+
| name | age | income | friends |
+------+-----+--------+---------+
| John | 20 | 10 | 0 |
+------+-----+--------+---------+
| Jane | 25 | 20 | 0 |
+------+-----+--------+---------+
| June | 20 | 40 | 20 |
+------+-----+--------+---------+
并且我想使用一个简单的查询将整个 table 中的所有“20”实例替换为“40”。类似于:
UPDATE table SET ALL-COLUMNS = 40 WHERE ALL-COLUMNS = 20
这可以用SQLite实现吗?还是我必须为每一列创建一个查询?
UPDATE table SET age = 40 WHERE age = 20
UPDATE table SET income = 40 WHERE income = 20
UPDATE table SET friends = 40 WHERE friends = 20
使用三个 UPDATE 语句是最简单的解决方案。
通过使用 CASE expressions:
可以使用单个 UPDATE 语句UPDATE MyTable
SET age = CASE age WHEN 20 THEN 40 ELSE age END,
income = CASE income WHEN 20 THEN 40 ELSE income END,
friends = CASE friends WHEN 20 THEN 40 ELSE friends END
WHERE age = 20
OR income = 20
OR friends = 20