Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск по нескольким таблицам
 
 автор: Bombey   (17.09.2009 в 22:31)   письмо автору
 
 

Доброго времени суток!
Делаю поиск по сайту. Есть 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)


Общий смысл думаю понятен. Как сделать, чтобы заработало? Заранее спасибо всем, кто ответит.

  Ответить  
 
 автор: Trianon   (17.09.2009 в 23:44)   письмо автору
 
   для: Bombey   (17.09.2009 в 22:31)
 

Зачем 4 таблицы?
Почему не одна?

  Ответить  
 
 автор: Bombey   (18.09.2009 в 00:19)   письмо автору
 
   для: 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%'

Подскажите, что не так.

  Ответить  
 
 автор: Trianon   (18.09.2009 в 01:03)   письмо автору
 
   для: Bombey   (18.09.2009 в 00:19)
 

4 раздела не должны порождать 4 таблицы.
Количество таблиц в БД не должно зависеть от количественных характеристик предметной области.

А загвоздка, как Вы выразились в FROM table1, table2, table3, table4

Так писать нельзя. Нельзя бездумно перечислять таблицы через запятую.

  Ответить  
 
 автор: Bombey   (18.09.2009 в 01:33)   письмо автору
 
   для: Trianon   (18.09.2009 в 01:03)
 

Как же их нужно перечислять?

  Ответить  
 
 автор: Trianon   (18.09.2009 в 02:21)   письмо автору
 
   для: Bombey   (18.09.2009 в 01:33)
 

В случае 4-х таблиц - UNION ALL, очевидно.
Но повторяю, четырех таблиц быть не должно. Одну же можно указать в лоб.

  Ответить  
 
 автор: Bombey   (18.09.2009 в 10:10)   письмо автору
 
   для: Trianon   (18.09.2009 в 02:21)
 

Спасибо огромное, то, что нужно! Я и сам понимаю, что это идиотизм, просто раньше думал форму от какого-нибудь гугла поставить, вот и создал для удобства 4 таблицы. А теперь переделывать весь сайт уже поздно.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования