|
|
|
| Доброго времени суток!
Делаю поиск по сайту. Есть 4 таблицы, в каждой по 2 столбца: name и song. Пытаюсь сделать запрос через LIKE, чтобы ключевое слово сравнивалось с 1 и 2 столбцом во всех таблицах. Результаты хочу отсортировать по алфавиту по первому столбцу.
SELECT * FROM table1, table2, table3, table4
WHERE
table1.name, table2.name, table3.name, table4.name, table1.song, table2.song, table3.song, table4.song
LIKE '%$keyword%')
ORDER BY BINARY (name)
|
Общий смысл думаю понятен. Как сделать, чтобы заработало? Заранее спасибо всем, кто ответит. | |
|
|
|
|
|
|
|
для: Bombey
(17.09.2009 в 22:31)
| | Зачем 4 таблицы?
Почему не одна? | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2009 в 23:44)
| | На сайте 4 раздела, на каждый раздел по одной таблице.
Насколько я понимаю, загвоздка во второй части запроса. Как сформулировать несколько условий LIKE?
WHERE
tabe1.name LIKE '%$keyword%' AND
tabe2.name LIKE '%$keyword%' AND
tabe3.name LIKE '%$keyword%' AND
tabe4.name LIKE '%$keyword%'
|
Подскажите, что не так. | |
|
|
|
|
|
|
|
для: Bombey
(18.09.2009 в 00:19)
| | 4 раздела не должны порождать 4 таблицы.
Количество таблиц в БД не должно зависеть от количественных характеристик предметной области.
А загвоздка, как Вы выразились в FROM table1, table2, table3, table4
Так писать нельзя. Нельзя бездумно перечислять таблицы через запятую. | |
|
|
|
|
|
|
|
для: Trianon
(18.09.2009 в 01:03)
| | Как же их нужно перечислять? | |
|
|
|
|
|
|
|
для: Bombey
(18.09.2009 в 01:33)
| | В случае 4-х таблиц - UNION ALL, очевидно.
Но повторяю, четырех таблиц быть не должно. Одну же можно указать в лоб. | |
|
|
|
|
|
|
|
для: Trianon
(18.09.2009 в 02:21)
| | Спасибо огромное, то, что нужно! Я и сам понимаю, что это идиотизм, просто раньше думал форму от какого-нибудь гугла поставить, вот и создал для удобства 4 таблицы. А теперь переделывать весь сайт уже поздно. | |
|
|
|