【问题标题】:DELETE FROM `table` WHERE `field`= nothingDELETE FROM `table` WHERE `field`= nothing
【发布时间】:2013-08-15 21:28:21
【问题描述】:

如何删除所有名为 A 的字段为空白的行。

假设我有一个如下所示的表格。

|ID   |A   |B   |C
|1    |Data|Data|Data
|2    |    |Data|Data
|3    |Data|    |Data
|4    |    |    | 

所以在上面的示例中,第 2 行和第 4 行将被删除,因为其中没有存储任何内容?

我该怎么做我正在做我正在考虑以下内容。

好的,设置另一个表并尝试以下操作。

DELETE FROM `table` WHERE `A`= ''

这样说对吗?

更新

好的,设置另一个表并尝试以下操作。

DELETE FROM `table` WHERE `A`= ''

按预期工作。我不想做一张好桌子,以防万一发生什么事情

【问题讨论】:

  • 你试过查询了吗?结果如何?
  • A 是否允许为空或您的示例是否显示空格?
  • stackoverflow.com/questions/4633321/… 会回答你的问题吗?
  • 好吧,我刚试完。我不得不设置另一张桌子,因为我不想吃任何东西。效果很好。
  • @BenP.Dorsi-Todaro 呵呵,是的,我完全理解不想在实时数据库上尝试你不确定的任意事情,尤其是故意破坏性的事情.很高兴你把事情解决了。就像一个指针一样,拥有一个相对较新的实时数据库副本总是好的,您会惊讶于通过尝试和错误尝试完成随机事物所学到的东西。祝你好运!

标签: mysql mysqli


【解决方案1】:

很难从您提供的内容中分辨出来,因为 ...blank... 可以有多种解释方式,但您可能正在寻找类似的东西

DELETE 
  FROM Table1
 WHERE CHAR_LENGTH(COALESCE(TRIM(A), '')) = 0

它的作用是删除 A 列中的所有行

  1. NULL 价值观
  2. 空字符串值
  3. 仅包含空格的值

这里是SQLFiddle演示

【讨论】:

    【解决方案2】:

    两个都可以用

    DELETE FROM `table` WHERE A = '';
    

    DELETE FROM `table` WHERE A IS NULL;
    

    【讨论】:

    • 如果那里是' '(一个由一个或多个空格组成的字符串)怎么办?
    • 解释这两种说法的区别。
    【解决方案3】:
    DELETE FROM TABLENAME
    WHERE A IS NULL OR TRIM(A) = '';
    

    【讨论】:

      猜你喜欢
      • 2011-04-06
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      相关资源
      最近更新 更多