我上面不是已经 模拟你的 表结构, 和测试数据了么?CREATE TABLE test_name( name varchar(30) );
INSERT INTO test_name (name)
SELECT 'aaaa/098234u' UNION ALL
SELECT 'bbbb/456sdfs34u' UNION ALL
SELECT 'cccc' UNION ALL
SELECT 'dddd/asfd34u'
;
上面是 模拟表 和数据。
下面是 更新语句, 和验证更新结果mysql> UPDATE test_name
-> SET
-> name = LEFT(name, INSTR(name, '/') - 1)
-> WHERE
-> INSTR(name, '/') > 0;
Query OK, 3 rows affected (0.02 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> select * from test_name;
+------+
| name |
+------+
| aaaa |
| bbbb |
| cccc |
| dddd |
+------+
4 rows in set (0.00 sec)
你有啥问题?
假设表名是tb,列名是name
那么 SQL 就是UPDATE tb
SET
name = LEFT(name, INSTR(name, '/') - 1)
WHERE
INSTR(name, '/') > 0;