空行取决于另一列

时间:2014-03-04 09:32:14

标签: mysql

现在我的表格存在这个问题

Name Practice Ben Private Private

我想摆脱第二个私人价值。

我试过了 Update tablename SET Practice = CASE WHEN Name LIKE NULL THEN NULL END

但它通过将我的所有名称值都视为空来回来。

非常感谢任何帮助。

谢谢!

更新

好的,我可能会过度简化我的问题

Name Establishment Practice
Ben  Hospital 1    Private
     Hospital 2    Private

此外,我在7000个参赛作品表中也有500多个这样的条目。

我希望在这种情况下摆脱第二个私人,因为两个私人值都对应一位医生。

一些医生的名字超过2家医院,因此超过2家医院。

对不正确的沟通感到抱歉。

5 个答案:

答案 0 :(得分:0)

您可以使用delete

delete from table_name where name is null and practice='private';

答案 1 :(得分:0)

如果通过删除第二个私有值,则表示您要删除第二行

DELETE FROM tablename
 WHERE Name is NULL

这是 SQLFiddle 演示

答案 2 :(得分:0)

您需要删除而不是更新

Delete from tableName where Name is Null

答案 3 :(得分:0)

试一下

UPDATE abc SET practice ='CASE' WHERE name LIKE ''

这不是将名称字段留空的好方法

答案 4 :(得分:0)

LIKE NULL不会生效,只能NULL。您必须使用IS NULL

示例

mysql> select null like null, null is null;
+----------------+--------------+
| null like null | null is null |
+----------------+--------------+
|           NULL |            1 |
+----------------+--------------+

这是错误的:

Update tablename 
  SET Practice = CASE WHEN Name LIKE NULL THEN NULL END

将其更改为:

Update tablename 
  SET Practice = CASE WHEN Name IS NULL THEN NULL ELSE Practice END