MySQL — почему выдает NULL из-за функции MySQL?

Есть запрос:

SELECT `password`,UPPER(md5(GROUP_CONCAT(CONCAT_WS(':',`pl_id`,`password`)))) FROM `admins` WHERE name = '%s' AND pl_id = '%d'


Если ничего не найдено, то возвращается NULL, как использовать IS NOT NULL в данной ситуации?
  • Вопрос задан
  • 2372 просмотра
Пригласить эксперта
Ответы на вопрос 2
svd71
@svd71
Если ничего не найдено, то возвращаемый курсор будет содержать 0 записей, а не значение NULL.

Хотя любые операции с NULL-значением возвращают NULL-значение.

ПС: немного неразумнохранить пароли в базе в открытом виде. Любой взлом ведет к прямому раскрытию паролей. Гораздо безопасней хранить только md5, высчитаный вместе с солью. Даже известное значение соли затрудняет прямой доступ к данным.
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега MySQL
SELECT 
		CASE WHEN COUNT(`password`) = 0 THEN
			'There is no results'
		ELSE UPPER(md5(GROUP_CONCAT(CONCAT_WS(':',`pl_id`,`password`)))) END AS
	'str'
FROM portal.`channels` c
WHERE name = '%s' 
AND pl_id = '%d'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы