Как проверить, что строка имеет значение в MySQL - PullRequest
0 голосов
/ 13 декабря 2018

Я выполняю запрос MySQL в MySQL-workbench.Запрос упрощен как:

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;

Я получаю много записей, которыеalg1 и alg2 содержат строки и не являются NULL.alga1 и alg2 - поля типа VARCHAR(500).Они содержат строки, которые могут содержать пробелы и могут не содержать ничего.Обратите внимание, что я не ввожу строку null и NULL вручную.Просто пустое поле, которое, насколько я понимаю, будет содержать NULL в значении NULL или null.

Как сделать условие, которое гласит, что alg1 и alg2 должныимеют значение в поле и не являются пустыми полями?

1 Ответ

0 голосов
/ 13 декабря 2018

Невозможно сравнить значение с 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 .

...