MySql 在 ; 之后的列中删除
MySql delete in column after ;
您好,我的 SQL 中有一列包含网址,但是我必须修改它以仅保留第一个
结果应该是 http://sub.domain.com/t/003/4_b_3.jpg,没有别的
任何人都可以帮助我语法吗?
提前致谢
使用非运算符<>
DELETE FROM [table] WHERE url <> 'http://sub.domain.com/t/003/4_b_3.jpg'
这将删除除 http://sub.domain.com/t/003/4_b_3.jpg
以外的所有行
或通用:
DELETE FROM [table] WHERE [url] NOT IN (SELECT TOP 1 [url] FROM [table])
通用的 returns 第一行 table 并且免于删除。
为了测试而不是抱歉使用 (MySQL):
START TRANSACTION;
DELETE FROM [table] WHERE url <> 'http://sub.domain.com/t/003/4_b_3.jpg';
ROLLBACK TRANSACTION;
会执行DELETE
但之后回滚,当它起作用时,不执行tran
。
假设 () Thumbs
是一个长字符串(它似乎在你原来的问题中,在我认为可能不正确的编辑之前),这将删除;
第一次出现后的所有内容
update tablename
set Thumbs = left(Thumbs , instr(Thumbs , ';')-1)
where instr(Thumbs , ';') > 0;
我建议使用 substring_index()
:
update tablename
set Thumbs = substring_index(Thumbs, ';', 1)
where thumbs like '%;%';
此函数旨在提取分隔字符串的第一部分。
您好,我的 SQL 中有一列包含网址,但是我必须修改它以仅保留第一个
结果应该是 http://sub.domain.com/t/003/4_b_3.jpg,没有别的
任何人都可以帮助我语法吗?
提前致谢
使用非运算符<>
DELETE FROM [table] WHERE url <> 'http://sub.domain.com/t/003/4_b_3.jpg'
这将删除除 http://sub.domain.com/t/003/4_b_3.jpg
或通用:
DELETE FROM [table] WHERE [url] NOT IN (SELECT TOP 1 [url] FROM [table])
通用的 returns 第一行 table 并且免于删除。
为了测试而不是抱歉使用 (MySQL):
START TRANSACTION;
DELETE FROM [table] WHERE url <> 'http://sub.domain.com/t/003/4_b_3.jpg';
ROLLBACK TRANSACTION;
会执行DELETE
但之后回滚,当它起作用时,不执行tran
。
假设 (Thumbs
是一个长字符串(它似乎在你原来的问题中,在我认为可能不正确的编辑之前),这将删除;
update tablename
set Thumbs = left(Thumbs , instr(Thumbs , ';')-1)
where instr(Thumbs , ';') > 0;
我建议使用 substring_index()
:
update tablename
set Thumbs = substring_index(Thumbs, ';', 1)
where thumbs like '%;%';
此函数旨在提取分隔字符串的第一部分。