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

标签 mysql sql

很难解释,但可以说我有一个表,其中包含名为 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/

相关文章:

javascript - Node JS 运行两个不同的数据库

phpActiveRecord 不正确的日期时间格式

mysql - MySQL 服务器的高 CPU 使用率

MySQL:以逗号分隔的项目数列表

带日期的 SQL 表

php - 不是从本地主机连接到 mysql

mysql - 每个用户最多显示3笔交易

sql - 夏令时导致数据库中的日期不正确

php - 数据库 |来自两个表的条​​件查询

mysql - 协助 MySQL 查询重复项