Php 搜索单词";空";在mysql字段中

Php 搜索单词";空";在mysql字段中,php,mysql,sql,null,Php,Mysql,Sql,Null,我使用的是phpmyadmin,我试图更新所有包含单词“null”的字段(如果您想知道的话,它来自javascript) 但是它说“FirstName”不能为空。奇怪的是选择…,其中…“null”起作用 我正在尝试将名称从member_info表拉到配置文件中包含文本字符串“null”的任何名称 (这就是我得到的) Use为空: update profile inner join member_info on Username=l_ID set FirstName= Nname_f, Last

我使用的是phpmyadmin,我试图更新所有包含单词“null”的字段(如果您想知道的话,它来自javascript)

但是它说“FirstName”不能为空。奇怪的是选择…,其中…“null”起作用

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

(这就是我得到的)


Use
为空

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

我的假设基于以下症状:WHERE匹配记录,但集合未能更新记录:

  • 字符串
    “null”
    存储在FirstName中(否则
    FirstName=“null”
    将不匹配,并且在更新后,它是给定的),并且

  • Nname_f恰好为NULL,因此赋值失败(可能是因为FirstName被声明为非NULL)。哎呀

  • 我建议在继续之前修复FirstName的定义/数据。也就是说,决定它是否可以为NULL——如果可以(听起来应该是这样),更改定义(使FirstName可以为NULL),并从
    “NULL”
    ->NULL运行一次性转换

    或者,使用
    set FirstName=ISNULL(Nname_f,“null”)
    或类似的方法将其从null自动转换,以便一致地使用此
    “null”
    文本。哎呀


    第三种选择是声明
    Nname\u f
    不可为空-当然,还要确保它不包含任何空-这样就不可能进行上述空赋值。

    只是为了确保,您编写了“NULL”和“NOT”NULL(单引号和非双引号),如果是文本“NULL”,那么您可以在FirstName喜欢的地方使用
    “%null%”
    或者像“null”这样没有%sit的字符串是文本字符串“null”。但是在mysql中,='null'和=“null”之间有什么不同呢“?”TheNytangel我真的试过了,但没有成功。我甚至试过regexp如果第二个表包含所有的名字,为什么要替换为空的呢?为什么不在整个表中运行它并跳过where条件呢?基于这个问题,OPs字段实际上可能包含字符串值“null”,这让我不寒而栗。它们本来应该有名称,但当名称框为空时,javscript应用程序最终发送了文本字符串“null”,这正是这些字段中的内容。是的,原始标题是“搜索单词“null”。很明显,你甚至没有正确地阅读这个问题。我真不敢相信你得到了两张赞成票。这很有趣,可以解释为什么没有加入的原始“选择”有效。从错误1048中,我们可以判断这是语法问题还是在运行时失败?@AwokeKnowing它在运行时失败-这违反了插入的值。如果没有空值,那么它可能会成功。考虑一个空约束检查,如用户添加的约束:<代码> ISNOTULL(X)—在能够询问该值是否有效之前,必须知道<代码> x>代码>。这与严重不兼容的类型错误不同。您是对的,member_表中有1个零值导致整个查询失败。
    #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"
    
    update profile inner join member_info on Username=l_ID
    set FirstName= Nname_f, 
    LastName=Nname_l 
    WHERE FirstName IS NULL