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

Форум PHP

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

 

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

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

тема: цикл в Select
 
 автор: Romantiktj   (15.10.2014 в 10:58)   письмо автору
 
 

есть набор слов в textbox : слово1 слово2 слово3 ...

надо организовать выборку типа

SELECT nsubj FROM table1 WHERE nsubj LIKE '%slovo1%' OR nsubj LIKE '%slovo(2)%' OR nsubj LIKE '%slovo(3)%' OR ...

то есть количество слов неизвестно , может быть 2 а может быть и 7

пожалуйста дайте совет как организовать выборку такого рода

  Ответить  
 
 автор: Axxil   (16.10.2014 в 12:04)   письмо автору
 
   для: Romantiktj   (15.10.2014 в 10:58)
 

Если именно в таком виде надо, то как-то так:

<?
    $words 
explode(" ",$_POST['textbox_field'])
    
$sql "SELECT nsubj FROM table1 WHERE nsubj LIKE '%".implode("%' OR '%",$words)."%'";
?>


Но поиск Like очень медленный, так как индексы там не задействуешь. А тем более когда их 7 в условии. Может быть лучше как-то перепроектировать систему?

  Ответить  
 
 автор: Trianon   (16.10.2014 в 13:30)   письмо автору
 
   для: Romantiktj   (15.10.2014 в 10:58)
 

такого рода выборки обычно реализуются одним из двух способов.
1.формируются дополнительные таблицы: таблица со словарем и таблица -связка. По ним (проиндексированным) и ведется поиск.
2. Применяются средства полнотекстового поиска субд

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

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