JOIN запрос

vladimircape

Новичок
Помогите сформировать правильный JOIN запрос
Есть таблица исполнителей, имеющих тип(от 1...18) и имеющий адресс в виде почтового индекса(но в таблице он указан просто цифрой, которая является id в другой таблице индексов, там есть id и номер индекса)
Нужно подсчитать всех исполнителей, с определенным типом, и номером индекса LIKE
пока вот что есть

SELECT COUNT(*) FROM contractors INNER JOIN zip ON contractors.zip=zip.id WHERE contractors.type=1 AND zip.zip LIKE %234%;
 

С.

Продвинутый новичок
Где вопрос?

И кстати зачем кодировать индекс? Это и так код.
 

vladimircape

Новичок
Где вопрос?

И кстати зачем кодировать индекс? Это и так код.
Просьба подсказать правильный запрос, я один сделал но не везде верные результаты.
Насчет кодировать индексы, в той таблицы кроме индексов будут еще и координаты хранится, так что нужно.
 

Redjik

Джедай-мастер
А тебя не смущает, что LIKE c 2мя wildcard (LIKE %234%), стоящими до и после искомой строки будет искаться без использования mysql индексов
 

С.

Продвинутый новичок
Запрос в принципе правильный. Надо рабираться в данных, возможно они неверные.

Redjik, человек вообще хоть какого-то результата получить не может, а ты его грузишь. Не стыдно?
 

Redjik

Джедай-мастер
Не, я заранее по рукам бью, за LIKE '%search_str%'
Я уже наткнулся на тонны статей как на хабре, так и в интернетах, где "это" советуют в качестве альтернативы полнотекстовому поиску...

ЗЫ. к слову запрос упадет с ошибкой
1) ибо если zip INT, то тут понятно
2) если zip VARCHAR, то не хватает ковычек
 

С.

Продвинутый новичок
Не развалится база данных, если время от времени ее попросить найти что-либо с LIKE.

Кавычки здесь совершенно пофигу, незвисиомо от типа колонки.
 
Сверху