很难解释,但可以说我有一个表,其中包含名为 NAME 的列,其中包含名字和姓氏以及公司名称。
为了消除公司名称,如果该字段不是由 2 部分字符串 Name Surname 组成(即其中包含超过 2 个单词),我想删除所有行
表格列示例:
ID - 名称 - 其他列
名称可能包含名字和姓氏和/或有时包含公司名称,例如 JT trading inc
由于人名包含 2 个部分 (aaaa bbbbb),我正在考虑使用此逻辑从删除中过滤掉仅人名而不是公司。
最佳答案
您可以选择名称中包含两个以上单词的行。这将拾取任何看起来不是人的东西。
它不考虑公司名称是唯一输入的内容且长度为 1 或 2 个单词的情况。它也可能不会考虑人的中间名也被存储的情况(即长度为 3 个单词)和可能输入没有连字符的双桶姓氏(例如 Isaac Forsyth Mimsy)
使用一些通用术语作为问题中未完全解释的数据结构:
DELETE #DONT# FROM Table
WHERE (
ROUND (
(
CHAR_LENGTH(LTRIM(RTRIM(Name)))
- CHAR_LENGTH( REPLACE ( Name, " ", "") )
) / CHAR_LENGTH(" ")
) > 1
我没有包含 COMMIT 来阻止人们不假思索地复制粘贴。
关于mysql - 如果列字段超过 2 个单词,如何在 mysql 中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35084572/