Не могу понять в чем разница между этими вариантами. Делал тестовое задание
В таблице Product найти модели, которые состоят только из цифр
Вывод: номер модели, тип модели.
мой запрос вернул правильные значения, но не прошел валидацию
Select model, type from product
where model like '%[0-9]%'
Но вот этот запрос работает правильно
SELECT model, type
FROM product
WHERE model not like '%[^0-9]%'
Во втором, мы отрицаем не вхождение символов. Так почему они разнятся, по логике вроде одно и то же.
Всё логично:
NOT LIKE %[^0-9]%
= найди все строки, кроме тех, в которых есть хотя бы один символ, отличный от цифры LIKE %[0-9]%
= найди все строки, в которых есть хотя бы одна цифра.Таким образом, первая команда вернёт только те строки, которые целиком состоят из цифр (если будет хоть одна не-цифра, тест не будет пройден), тогда как вторая вернёт все строки, в которых имеется хотя бы одна цифра, остальные символы могут быть любыми.
Обратите внимение, NOT LIKE %[^0-9]%
= REGEXP '^[0-9]+$'
, однако REGEXP
работает гораздо менее эффективно по сравнению с LIKE.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытаюсь в dle cms сохранять дополнительную информацию о пользователе в базу данных, при этом дополнительные данные получаю из JSON со стороннего...
У меня такая проблема: есть бд, в которой есть таблица users, и мне нужно эту самую таблицу вывести, но выводится только слово 'Array' и больше ничегоВот...
Проблемма вот такаяЕсть у меня интернет магазин на Laravel 5