SQLite如何删除cars表source列example1站点URL?后的所有字符
SQLite清洗cars表source列实现方法
执行更新操作前请务必备份数据表,避免数据误改无法恢复
第一步:先执行查询验证清洗逻辑
先运行以下查询,对比原始值和清洗后的值,确认结果完全符合预期再做更新:
SELECT source 原始内容, CASE WHEN source LIKE '%example1.com%' AND INSTR(source, '?') > 0 THEN SUBSTR(source, 1, INSTR(source, '?') - 1) ELSE source END 清洗后内容 FROM cars;
逻辑说明:
- 用
LIKE '%example1.com%'筛选所有属于example1站点的记录,非该站点的记录直接返回原始内容不做任何修改 - 用
INSTR(source, '?')定位内容中第一个问号的位置,如果记录本身没有问号,直接跳过不处理 - 用
SUBSTR函数截取从内容开头到问号前一位的部分,刚好删除问号及其后携带的所有参数字符串 - 针对题目给出的a标签格式样例数据,该逻辑会同时处理href属性内和标签文本内的两处带参数的example1链接,完全匹配预期处理效果
第二步:执行更新操作
确认验证查询返回的结果无误后,执行以下更新语句完成清洗:
UPDATE cars SET source = SUBSTR(source, 1, INSTR(source, '?') - 1) WHERE source LIKE '%example1.com%' AND INSTR(source, '?') > 0;
注意:WHERE条件已经自动过滤了非example1站点、以及example1站点中不带问号参数的记录,不会对无需修改的行产生任何影响。
内容的提问来源于stack exchange,提问作者oussama
相关产品推荐
相关产品推荐

