| есть таблица (не очень большая), в которой содержатся некоторые данные из другой, очень большой и часто обновляемой таблицы. такие как - субкатегория, марка, номер товара и процент наценки.
наценка может назначаться целой субкатегории (всем товарам всех марок, которые в нее входят), отдельной марке товаров в субкатегории или отдельным товарам.
соответственно, в таблице могут быть заполнены поля или только субкатегории, или субкатегории и марки, или все - субкатегории, марки и номера товара.
если наценка действует на всю категорию, то в полях "марка" и "id" я ставлю знак %.
если наценка действует только на марку в какой-то субкатегории, то % - только в поле "id", а субкатегория и марка заполнены.
после обновления (путем закачки нового прайса) большой таблицы нужно найти в ней те субкатегории, марки и/или отдельные товары, на которые установлена наценка и обновить ее, заполнив поле наценки в большой таблице, выбрав его из маленькой.
проблема в том, что запрос не желает выполняться, если я сравниваю с %. мне нужно выбрать строки, в которых определенное поле не равно "%". ставлю \ перед %
и все равно выбирает все. если делаю запрос типа:
select * from kerdos where (marka = "%" and id != "\%")
мне выдает все записи. а мне нужны только те, у которых заполнен id, т.е. стоит реальный 10-значный номер, а не %. наверно, не надо было связываться с % при заполнении таблицы наценок, но я теперь не помню, почему я ставлю именно %, а не 0 или просто пустое место. причем, если тот же запрос (только без слеша перед%) я делаю в MyPHPAdmin, то мне выдает то, что надо - все товары, у которых заполнен id.
пробовала и REGEXP (в MySQL), но или ошибку выдает или опять же - все записи.
замучилась. может, не связываться с SQL-запросами, а решить все с помощью PHP. когда получена строка из базы, проверять, что там в полях и в зависимости от наличия данных или % делать разные запросы на обновление большой таблицы? | |