我正在使用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"
答案 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无法更新记录:
字符串 "null"
存储在FirstName中(否则FirstName = "null"
将不匹配,并且在更新后,它是给定的),并且; < / p>
Nname_f恰好为NULL,因此赋值失败(可能是因为FirstName被声明为非NULL)。糟糕!
我会建议在继续之前修复FirstName的定义/数据。也就是说,确定是否是否为NULL - 如果可以(听起来应该是这样),请更改定义(以便FirstName为NULLABLE)并运行一次性转换来自"null"
- &gt; NULL。
或者,使用set FirstName = ISNULL(Nname_f, "null")
或类似方法进行黑客攻击以自动从NULL转换 - 以便始终如一地使用此"null"
文字。伊克!
第三个选项是声明Nname_f
NOT NULLABLE - 并确保它不包含任何NULL - 当然 - 以便无法进行上述NULL分配。