Не работает запрос с like

seva2

Партнер PHPClub.ru
Не работает запрос с like

[sql]
$get=mysql_query("select o.orders_id, bl.banid from orders as o LEFT JOIN courier_blank as bl on bl.zakaz not like '%o.orders_id;%' where (o.orders_status='8' or o.orders_status='9') and o.customers_city like '%моск%' order by orders_id desc limit 10");
[/sql]

Вообще такая задача, из таблицы orders выташить orders_id только те, которые ни разу не встречаются в таблице courier_blank.

bl.zakaz имеет тип: номер заказа;номер заказа;....
 

alpine

Новичок
Примерно так:
[sql]
SELECT o.orders_id FROM `order` as o LEFT JOIN `courier_blank` as cb ON(o.orders_id = cb.orders_id) WHERE cb.orders_id IS NULL
[/sql]
 

seva2

Партнер PHPClub.ru
Нет... я же специально привел в какой формате поле bl.zakaz хранится в базе
 

alpine

Новичок
seva2
Советую пересмотреть свою структуру чтобы можно было использовать запрос который я тебе привел в качестве примера как должно быть правильно.
 

Profic

just Profic (PHP5 BetaTeam)
Если же оставить все как есть, то CONCAT() для второго аргумента LIKE.
 

alpine

Новичок
Пример, хранятся у меня такие данные:
12;111;2;22
мы пишем WHERE bl.zakaz LIKE '%1;%' и обламываемся.
 

Profic

just Profic (PHP5 BetaTeam)
И что с этого?
В оригинале у него там ; перед последним %. Чтобы все было хорошо нужно поставить ее еще и после первого, сделать небольшой апдейт таблице и немного изменить скрипт/прогу которая с этим делом работает. Однако хотел это оставить в качестве домашнего задания, ан не вышло. Хотя задание таки остается :) - небольшой апдейт таблицы.
 

alpine

Новичок
Profic
Ах, не получилось чтобы ничего не делать и отделаться одним запросом. ;)
 

Profic

just Profic (PHP5 BetaTeam)
alpine
ну почему же, можно этот like развернуть на 2 один с двумя ; и %, второй с одной и % и объединить их по OR. Но это уже как мне кажется будет совсем извратом :).
 

alpine

Новичок
Profic
no comments :D

-~{}~ 25.12.05 15:56:

Хотя можно было бы хранить все в одном поле типа VARCHAR разделенное через ',' и использовать функция FIND_IN_SET().
 
Сверху