MySQL列名和别名

use*_*820 0 mysql

我已经读过,在select之后我们使用了列名,但是我找到了一个如下语句:

SELECT 'A' FROM T WHERE A = NULL;
Run Code Online (Sandbox Code Playgroud)

你会租用帮帮我吗?谢谢(这是一个列名吗?)我的DBMS是MySQL

编辑:确切的问题是:上述语句是否会产生一行(选择所有适用的)?请注意,ANSI_NULLS为OFF.

我想知道上述说法是否有效?因为有些人说我们应该写IS NULL而不是= null

Jus*_*ner 8

根据该查询,您将获得一个结果集,其中包含名为A的列等于null的每一行的字符"A".

如果您确实想要查看列A的值而不是字符"A",则必须删除单引号:

SELECT A FROM T WHERE A IS NULL
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,你都不应该使用= NULL.某些RDMS不能按照您的想法处理.标准是改为使用IS NULL.