Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
У меня есть 4 таблицы, в которых я хочу найти определенные совпадения по нескольким полям. Вот запрос -
Неактивен
mixamz написал:
правилен ли он
Правильно ли я понимаю, что вы даже не прогоняли этот запрос?
Отредактированно Lem0nti (18.05.2011 18:32:17)
Неактивен
Прогонял. При наличии в базе искомого слова выдается куча всего. в том числе и правильный результат. я просто еще вывода не могу понять!
Неактивен
Не куча всего, а строки, которые совпадают с этим словом хотя бы одним полем.
Устроит такой вариант ответа?
Неактивен
нет не совсем. Я понимаю Вас прекрасно, что надо идти и оканчивать курсы. Но рздел вроде так и называется "Для начинающих". а такого рода запросов и вывода его результатов не нашел ни на одном форуме включая Ваш - все ограничиваются простыми запросами с одним-двумя условиями или с поиском по одной таблице.
Ну да ладно, а подскажите тогда пожалуйста как мне составить запрос.
Есть 4 таблицы (t1, t2, t3, t4): у первых трех из них ключевое поле `id` у четвертой `id_n`, у первых трех поле по которому необходимо искать - `text`, у четвертой их два - `text` и `text2`. Сам поисковый запрос состоит из строки (например три слова - s1,s2,s3).
Задача: в одном запросе по каждому из слов поискового запроса опросить 4 таблицы и при наличии совпадения вывести id или id_n найденой записи. ну и вывести название таблицы в которой это совпадение найдено.
Неактивен
Я ничего не говорил про курсы, я просто описал то, что делает запрос
Судя по описанию, Вы хотите нечто такое:
SELECT 't1' AS tablename, id FROM t1 WHERE `text` LIKE '%word%'
UNION
SELECT 't2' AS tablename, id FROM t2 WHERE `text` LIKE '%word%'
UNION
...
При наличии полнотекстового индекса (желательно) нужно переписать
запрос в виде WHERE MATCH (`text`) AGAINST ('word1 word2')
Неактивен