在mysql字段中搜索单词“null”

时间:2013-09-18 23:41:28

标签: php mysql sql null

我正在使用phpmyadmin并且我正在尝试更新包含单词'null'的所有字段(如果您想知道它来自javascript)。

update profile inner join member_info on Username=l_ID
set FirstName= Nname_f, 
LastName=Nname_l 
WHERE FirstName = "null"

但它说“FirstName”不能为空。奇怪的是select ... where ...“null”DID工作。

我正在尝试将member_info表中的名称拉到Profile中包含文字字符串“null”的任何名称

(这就是我得到的)

#1048 - Column 'FirstName' cannot be null
UPDATE profile INNER JOIN member_info ON Username = l_ID SET FirstName = Nname_f,
LastName = Nname_l WHERE FirstName LIKE  "null"

2 个答案:

答案 0 :(得分:1)

使用IS NULL

update profile inner join member_info on Username=l_ID
set FirstName= Nname_f, 
LastName=Nname_l 
WHERE FirstName IS NULL 

答案 1 :(得分:1)

我的假设基于WHERE与记录匹配的症状,但SET无法更新记录:

  1. 字符串 "null"存储在FirstName中(否则FirstName = "null"将不匹配,并且在更新后,它是给定的),并且; < / p>

  2. Nname_f恰好为NULL,因此赋值失败(可能是因为FirstName被声明为非NULL)。糟糕!

  3. 我会建议在继续之前修复FirstName的定义/数据。也就是说,确定是否是否为NULL - 如果可以(听起来应该是这样),请更改定义(以便FirstName为NULLABLE)并运行一次性转换来自"null" - &gt; NULL。

    或者,使用set FirstName = ISNULL(Nname_f, "null")或类似方法进行黑客攻击以自动从NULL转换 - 以便始终如一地使用此"null"文字。伊克!

    第三个选项是声明Nname_f NOT NULLABLE - 并确保它不包含任何NULL - 当然 - 以便无法进行上述NULL分配。