如何在MySQL中检查字符串是否有值

时间:2018-12-13 15:47:24

标签: mysql database mysql-workbench

我正在MySQL-workbench中运行一个MySQL查询。该查询被简化为:

SELECT name1, name2, alg1, alg2 
FROM table1, table2
WHERE CONCAT('www.',name1) = name2
AND ((alg1 != NULL) AND (alg2 != NULL));

我得到0条结果。尽管我确信有些记录可以满足满足所有条件的条件。

当我删除第二个条件时,我的查询变为:

SELECT name1, name2, alg1, alg2 
FROM table1, table2
WHERE CONCAT('www.',name1) = name2;

我得到许多记录,其中有alg1alg2包含字符串而不是NULLalga1alg2VARCHAR(500)类型的字段。它们包含可以包含空格的字符串,并且可以不包含任何空格。请注意,我既不会手动输入字符串null也不会手动输入NULL。只是一个空字段,据我所知将在值NULLNULL中包含null

我该如何规定alg1alg2在该字段中应该有一个值,而不是空字段?

1 个答案:

答案 0 :(得分:1)

您无法将值与NULL进行比较。相反,您应该使用语句IS NOT NULL

SELECT name1, name2, alg1, alg2 
FROM table1, table2
WHERE CONCAT('www.',name1) = name2
AND ((alg1 IS NOT NULL) AND (alg2 IS NOT NULL));

您可以在MySQL documentation中找到有关此问题的更多详细信息。