扫码关注官方订阅号
比如我现在有表 person,其中的一个字段是 name,name中有些是“张三”,但是有些是“张 三”。我现在在电脑上有工具 Navicat Lite,怎么样写语句将所有空格删掉啊?
光阴似箭催人老,日月如移越少年。
请执行以下SQL语句
UPDATE person SET name=REPLACE(name, ' ', '');
虽然你说的这个软件我没用过= =但是!!!用Java或Android代码来解决这个问题也是十分简单的ovo
Connection c = null; Statement stmt = null; try { Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:test.db"); c.setAutoCommit(false); System.out.println("Opened database successfully"); stmt = c.createStatement(); ResultSet rs = stmt.executeQuery( "SELECT id,name FROM person;" ); while ( rs.next() ) { String id = rs.getString("id"); String name = rs.getString("name"); System.out.println(name); name = name.replaceAll(" ",""); String sql = "UPDATE person name = " + name + " WHERE id = "+ id +""; stmt.executeUpdate(sql); } rs.close(); stmt.close(); c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); System.exit(0); } System.out.println("successfully"); }
没有想到有怎样的sql语句能完成你这样的工作了,我想最终数据库还是得去判断你的name是否存在空格符并进行update,所以select所有条目出来对name进行trim()操作再update回去不失为数据库操作最容易实现(虽然粗暴了点)的办法了,update回去时采用事物操作,避免原子读写,几十万条数据,我觉得能控制在10s内,做一个后台任务,我觉得是能接受的。另一种方案,不修改改原有name数据,使用select出来后再对name进行trim(),再使用,不也能达到你的目的吗?还能保持原有数据的原始性。
可以在存入数据库之前先将输入的内容处理好(安全并合乎你的逻辑),再存进去
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
请执行以下SQL语句
虽然你说的这个软件我没用过= =
但是!!!用Java或Android代码来解决这个问题也是十分简单的ovo
没有想到有怎样的sql语句能完成你这样的工作了,我想最终数据库还是得去判断你的name是否存在空格符并进行update,所以select所有条目出来对name进行trim()操作再update回去不失为数据库操作最容易实现(虽然粗暴了点)的办法了,update回去时采用事物操作,避免原子读写,几十万条数据,我觉得能控制在10s内,做一个后台任务,我觉得是能接受的。另一种方案,不修改改原有name数据,使用select出来后再对name进行trim(),再使用,不也能达到你的目的吗?还能保持原有数据的原始性。
可以在存入数据库之前先将输入的内容处理好(安全并合乎你的逻辑),再存进去