我有一个由5000行组成的表。我需要SQL命令,可以通过删除“(...)”中的所有值来更新每一行,只要找到一对()就可以了。MysQL更新如果计数条件得到满足
基本上,如果我有一排名称:
名称姓(额外的信息)
我需要删除“(额外的信息)”,只留下名字姓
但如果有没有额外的夫妇()
如果有一排 名姓(数据)(额外的信息)
脚本应该不是治愈这个名字
在简单的话,我需要更新的名称,你可以尝试寻找第一个“(”和子到它那里只有一个(或)符号
非常感谢
我有一个由5000行组成的表。我需要SQL命令,可以通过删除“(...)”中的所有值来更新每一行,只要找到一对()就可以了。MysQL更新如果计数条件得到满足
基本上,如果我有一排名称:
名称姓(额外的信息)
我需要删除“(额外的信息)”,只留下名字姓
但如果有没有额外的夫妇()
如果有一排 名姓(数据)(额外的信息)
脚本应该不是治愈这个名字
在简单的话,我需要更新的名称,你可以尝试寻找第一个“(”和子到它那里只有一个(或)符号
非常感谢
?
不要忘记使用情况无(字符串
update userlogin
set fullname = case position('(' in FullName)
when 0
then fullname
else substring(Fullname,1,position('(' in FullName) - 1)
end
这是我的问题的一个实现。我曾经选择让我将它更新请求之前检查结果。该脚本显示的 3列的表:ID,姓名,UpdatedName,这里的名字是什么,我们已经和UpdatedName我们将获得
SELECT `Id`,`Name`,
(case when ((LENGTH(`Name`)-LENGTH(REPLACE(`Name`, '(', ''))) = 1)
THEN
SUBSTRING_INDEX(`Name`, '(', 1)
ELSE
'-'
END)
as updated_name,
FROM table
WHERE (LENGTH(`Name`)-LENGTH(REPLACE(`Name`, '(', ''))) = 1
LIMIT 0,1500
PS我用标识,让我修改值
SELECT CASE
WHEN fname = 'correct' THEN 'your condition'
WHEN sname = 'correct' THEN 'your second condition'
ELSE 'baz'
END AS fullname
FROM `databasetable`
,或者你可以做的像也
CASE
WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE
'WHERE名称NOT LIKE“%(%)%(%)%'将跳过该有多行'(...)' – Barmar