LIKE в составных запросах

AntiBuger

Новичок
Приветствую всех.

Помогите в решении проблемы, что-то не могу понять почему не работает.

Имеется две таблицы,
employee - сотрудники
project - проекты

SELECT * FROM employee INNER JOIN project ON project.emp_uid LIKE '%employee.uid%'

Вот почему-то то что выделено красным не работает, работать будет если написать
SELECT * FROM employee INNER JOIN project ON project.emp_uid LIKE '%1234356%'

Логика запроса: извлечь всех сотрудников относящихся к проекту. В таблице проекта в столбце emp_uid хранятся список идентификаторов сотрудников.
 

AnrDaemon

Продвинутый новичок
Ты сам то понял, что вот тут только что написал?…
Какой LIKE нахрен?…
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@AntiBuger, У вас, мил человек, неправильная архитектурка, надо, на минуточку, не делать, как сделали вы:
В таблице проекта в столбце emp_uid хранятся список идентификаторов сотрудников.
А хранить идектификатор-на-строку, то есть одна строчка привязки - один айдишник. Переделывайте.

И, да, поиск тогда не будет вестись через LIKE, а простой выборкой по индексам.
 

AntiBuger

Новичок
@AntiBuger, У вас, мил человек, неправильная архитектурка, надо, на минуточку, не делать, как сделали вы:


А хранить идектификатор-на-строку, то есть одна строчка привязки - один айдишник. Переделывайте.

И, да, поиск тогда не будет вестись через LIKE, а простой выборкой по индексам.
Дело в том что сотрудников очень много и создавать поля с запасом просто бессмысленно. Или я Вас не так понял. В столбце emp_uid хранятся идентификаторы сотрудников в виде "jkhdfdfg,sdfyhhds,34gdfg3r,v45ysd2"
 

AntiBuger

Новичок
Ты сам то понял, что вот тут только что написал?…
Какой LIKE нахрен?…
Уважаемый AnrDaemon, ты бы лучше посоветовал что-то, а так как ты, может любой написать. Ты бы еще ссылку на sql.ru прислал, было бы очень профессионально. Форумы нужны для обмена опытом, а не для флуда.
 

AntiBuger

Новичок
Коллеги, я не прошу все разжевывать, просто дайте направление куда идти и что конкретно изучить в этом направлении.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@AntiBuger, тебе уже дали направление - гугл. У тебя должна быть промежуточная таблица, где ты будешь нранить id записи из своей теперешней таблицы, а рядом в столбик - под одному id юзера на строчку.
 

AntiBuger

Новичок
А, ну это понятно. Конечно будет правильнее хранить смежную таблицу. Но вопрос был в другом, почему НЕ РАБОТАЕМ мой код. Это нюанс языка? Почему не работает '%employee.uid%' ?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Потому, что это не будет работать. LIKE оперирует строками. Что ты в него передал, а именно - employee.uid, это mysql и посчитала, как строку, а не ссылку на колонку
 

AntiBuger

Новичок
Потому, что это не будет работать. LIKE оперирует строками. Что ты в него передал, а именно - employee.uid, это mysql и посчитала, как строку, а не ссылку на колонку
Спасибо. Я просто думал есть решение такой проблемы, которое можно применять в похожей ситуации.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я не говорил, что решения нет ;) оно гуглится, кстати довольно просто, типа mysql like field value
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@AnrDaemon, ну хоть гуглить научится мож быть %) Если уж исправить этот косяк у него нет желания
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@WMix, брысь отсюда, так явно не надо учить плохому.
 
  • Like
Реакции: WMix
Сверху