2016-01-29 24 views
3

很難解釋,但可以說我有一個名爲NAME的列,其中包含姓名和公司名稱。如何在mysql中刪除列字段是否有2個以上的字?

爲了消除公司的名字我想刪除所有的行,如果該字段沒有做出來2部分字符串形式的名稱姓(即中有超過200個字)表柱的側向承載力

例子:

ID - 姓名 - Someothercolumns

名稱可以包含名字和姓氏和/或有時公司的名稱,如JT交易INC

由於人的名字包含2部分(AAAA BBBBB)我是用該L思考ogic從只刪除人名而不是公司中刪除人名。

+1

您可以添加示例表數據,並解釋要刪除哪些行? – jarlh

+0

@CecilioPardo有正確的答案。我不確定它爲什麼被刪除。 –

+1

你可以通過它們之間的空格來定義一個字符串,這樣你就可以在這個答案中搜索那個字符的出現(http://stackoverflow.com/questions/12344795/count-the-number-of-occurences-of-一個字符串-IN-A-VARCHAR場)。只要不要忘記修剪()你的領域事先刪除前面的和結束的空格。然後,你可以添加一個HAVING語句其中C t> 1. – DanK

回答

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阻止人們複製粘貼,而無需通過思考它。

相關問題