Я не знаю, как сформулировать эту проблему, поэтому я просто покажу вам, ребята, что мне нужно.
У меня есть таблица вроде этого:
+----+----------------+------------+
| id | name | med |
+----+----------------+------------+
| 1 | seclo | omeprazole |
| 2 | something else | other |
| 3 | ometid | omeprazole |
+----+----------------+------------+
и до сих пор я использую следующий запрос для получения записей.
SELECT * FROM item WHERE (name LIKE '%{$search}%' OR med LIKE '%{$search}%')
но теперь я хочу найти имя (или мед) и хочу, чтобы записи, имеющие ту же медитацию, что и те, которые соответствуют названию.
Например, если я поставлю "сек", я хочу записи 1 и 3, потому что запись 3 имеет ту же самую медитацию, которая соответствует записи 1.
я надеюсь, что вопрос ясен. заранее спасибо.
Это поможет вам
SELECT * FROM item WHERE med IN (SELECT med from item WHERE name LIKE '%{$search}%' OR med LIKE '%{$search}%')
Вы должны использовать подзапрос, который ссылается на одну и ту же таблицу, чтобы получить необходимую med
:
SELECT *
FROM item
WHERE med in (
SELECT med
FROM item
WHERE (name LIKE '%{$search}%' OR med LIKE '%{$search}%')
OR name LIKE '%{$search}%')
//попробуй это..
SELECT * FROM 'item' WHERE 'med' IN (SELECT 'med' FROM 'item' WHERE ('name' LIKE '%{$search}%' OR 'med' LIKE '%{$search}%') OR 'name' LIKE '%{$search}%')