@Seintero

Как составить запрос на пустоту поля?

Всем привет. Скоро уже выть начну от своей войны :)) Пытаюсь с помощью odbc и pdo связаться со старенькой базой на access. И большинство привычных мне запросов не работают!
Вот пример самого простого запроса...
SELECT * FROM \"Детали\" WHERE \"Чертеж\"!=''
Никак не хочет работать. Если задавать какое условие на "равно", то они отрабатывают. И всё..
Так же не знаю как подружить его с запросом сразу к двум таблицам,
$q="SELECT * FROM \"Детали\", \"Изделия\""; - тоже будут ругаться))
Кто-нибудь бился с такими мамонтами? :)))
  • Вопрос задан
  • 264 просмотра
Пригласить эксперта
Ответы на вопрос 3
@MoonMaster
Программист и этим все сказано
страно вы проверяете на пустоту. Разве не нужно писать \"Чертеж\" IS NOT NULL? А во втором запросе я думаю у вас проблема с форматированием или с Изделяеми, почему вы пишете "\Изделия\" а не \"Изделия\"??
Ответ написан
Я не эксперт в SQL-Like языках, но разве у MS Access нужны кавычки?
Попробуй что-то в этом роде:
SELECT * FROM Детали WHERE Чертеж<>""
Ответ написан
@art_karetnikov
Лучший мой проект: Мобильный банк Сбербанка РФ.
Значит, на пустое поле так не проверяют. Надо понимать разницу между "пустая строка" и Null

самое простое для акцесса - это прибавлять к строке пустую, тогда NULL станет тоже строкой.

MyValue = trim(MyValue) & ""

что здесь делается - если значение строки MyValue - одни пробелы, оно провратится в ""
Если значение строки NULL - оно провратится в ""

select * from mytable where trim(MyValue) & "" <> "" -- вот этот запрос отработает.

Теперь, две таблицы:

select * from mytable mt
join mytable2 mt2 on mt.id = mt2.id_item
where trim(mt.MyValue) & "" <> ""
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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