gpt4 book ai didi

mysql - 与NULL值比较

转载 作者:行者123 更新时间:2023-11-29 16:02:58 24 4
gpt4 key购买 nike

CREATE TABLE `mycompare` (
`name` varchar(100) default NULL,
`fname` varchar(100) default NULL,
`mname` varchar(100) default NULL,
`lname` varchar(100) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `mycompare` VALUES('amar', 'ajay', 'shankar', NULL);
INSERT INTO `mycompare` VALUES('akbar', 'bhai', 'aslam', 'akbar');
INSERT INTO `mycompare` VALUES('anthony', 'john', 'Jim', 'Ken');
_____

SELECT * FROM mycompare WHERE (name = fname OR name = mname OR name = lname)
akbar bhai aslam akbar

select * from mycompare where !(name = fname OR name = mname OR name = lname)
anthony john Jim Ken


在上面的第二个选择中,我也希望“ amar”记录,因为该名称与名字,名字或姓氏不匹配。

最佳答案

NULL的任何比较都会产生NULL。为了克服这个问题,可以使用三个运算符:


x IS NULL-确定左手表达式是否为NULL
x IS NOT NULL-如上,但相反
x <=> y-以安全的方式比较两个操作数是否相等,即NULL被视为正常值。


对于您的代码,您可能要考虑使用第三个选项,并进行null安全比较:

SELECT * FROM mycompare 
WHERE NOT(name <=> fname OR name <=> mname OR name <=> lname)

关于mysql - 与NULL值比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56014602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com