Страницы

Поиск по вопросам

вторник, 4 июня 2019 г.

Выбор записей из таблицы по типу файла

В таблице upload_files содержится путь к фотографиям и текстовым документам. Я делаю выборку для фотографий так:
SELECT * FROM `uploаd_files` WHERE name_pos LIKE '%.jpg' OR (`name_pos` LIKE '%.png' OR `name_pos` LIKE '%.gif') AND `ip_users` = '$link' ORDER BY `name_pos` DESC
И для документов:
SELECT * FROM `upload_files` WHERE name_pos NOT LIKE '%.jpg' OR (`name_pos` NOT LIKE '%.png' OR `name_pos` NOT LIKE '%.gif') AND `ip_users` = '$link' ORDER BY `name_pos` DESC
Но результат получается неверный. Что я делаю неправильно?


Ответ

Ну а для решения проблемы, думаю, надо скобки переставить:
SELECT * FROM `uplod_files` WHERE (`name_pos` LIKE '%.jpg' OR `name_pos` LIKE '%.png' OR `name_pos` LIKE '%.gif') AND `ip_users` = '$link' ORDER BY `name_pos` DESC
и
SELECT * FROM `uplod_files` WHERE NOT (`name_pos` LIKE '%.jpg' OR `name_pos` LIKE '%.png' OR `name_pos` LIKE '%.gif') AND `ip_users` = '$link' ORDER BY `name_pos` DESC
И ещё, я бы исправил WHERE следующим образом:
WHERE RIGHT(`name_pos`, 3) IN ('jpg', 'png', 'gif') AND `ip_users` = '$link'
Ну и соответственно для документов:
WHERE NOT RIGHT(`name_pos`, 3) IN ('jpg', 'png', 'gif') AND `ip_users` = '$link'

Комментариев нет:

Отправить комментарий