如果列字段超过2个字,如何在mysql中删除?

时间:2016-01-29 12:27:03

标签: mysql sql

很难解释但是我可以说我有一个名为NAME的列表,其中包含姓名和公司名称。

为了消除公司名称,我想删除所有行,如果该字段不是由2部分字符串命名姓氏(即其中包含2个以上的单词)

表colums的示例:

ID - 名称 - Someothercolumns

该名称可能包含名字和姓氏和/或有时候公司名称,如JT trading inc

由于人名包含2个部分(aaaa bbbbb),我正在考虑使用此逻辑从删除中仅过滤人名而不是公司。

1 个答案:

答案 0 :(得分:1)

您可以选择名称中包含两个以上单词的行。这会收集任何看起来不是人的东西。

它并不考虑公司名称是唯一输入的内容,长度为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来阻止人们在不经过考虑的情况下复制粘贴。