Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
event
Отправлено: 25 Марта, 2012 - 22:47:07
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Привет.
Есть такой запрос:

SQL:
скопировать код в буфер обмена
$res = mysql_query("SELECT b.*, users.class, users.username FROM blog AS b LEFT JOIN users ON b.owner = users.id ORDER BY ID DESC $limit") or sqlerr(__FILE__, __LINE__);


Есть переменная $blude которая содержит слово, нужно добавить к запросу, что бы он выбирал лишь те записи, где в ячейке tags содержится то слово которое записано в переменной $blue, походу что-то типа LIKE нужно сделать...

Пример содержащего ячейки tags: 1, 2, 3, 4, 5, тип ячейки text
 
 Top
Bio man
Отправлено: 25 Марта, 2012 - 23:03:26
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




MyISAM + полнотекстовый индекс + MATCH ... AGAINST. При большом количестве записей искать будет долго (с использованием LIKE).
 
 Top
event
Отправлено: 25 Марта, 2012 - 23:21:49
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Bio man
Нифика не понял... Не понял

Большое количество записей это сколько?

Ну там примерно у меня по 300-700 в год будет. И у меня постраничная навигация, на одной страничке по 7, так что думаю нагрузки и обрабатываться скоро будет.

(Отредактировано автором: 25 Марта, 2012 - 23:27:45)

 
 Top
Bio man
Отправлено: 25 Марта, 2012 - 23:34:36
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




В общем чем больше записей тем дольше будет поиск по не индексированному тексту. Будет тупо перебор всех записей и в каждой будет искать нужный текст. Но, FULLTEXT INDEX поддерживает только движок MyISAM. Примерный запрос на создание индекса (ТОЛЬКО ДЛЯ MyISAM)
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE FULLTEXT INDEX ftIndex ON table_name (COLUMN);

Сам поиск
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM table_name WHERE MATCH (COLUMN)
  2. AGAINST ('$blude' IN_NATURAL_LANGUAGE_MODE)

Есть еще IN_BOOLEAN_MODE, про это можно почитать самостоятельно.
 
 Top
event
Отправлено: 25 Марта, 2012 - 23:40:37
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Дай пример с лайком плиз...
 
 Top
Bio man
Отправлено: 25 Марта, 2012 - 23:49:58
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table_name` WHERE `column` LIKE '%$blude%'

(Отредактировано автором: 25 Марта, 2012 - 23:50:20)

 
 Top
event
Отправлено: 25 Марта, 2012 - 23:51:45
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




А чего Вы все на этом форуме постоянно ставите `?
 
 Top
Bio man
Отправлено: 25 Марта, 2012 - 23:54:42
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




event пишет:
А чего Вы все на этом форуме постоянно ставите `?
Это ограничители, их рекомендуется ставить всегда. Пример SELECT user id даст ошибку, а SELECT `user id` выполнится без проблем. В MSSQL ими являются [], если это вам о чем то говорит
1000 постов Радость

(Отредактировано автором: 25 Марта, 2012 - 23:56:06)

 
 Top
DelphinPRO
Отправлено: 25 Марта, 2012 - 23:58:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)





event пишет:
А чего Вы все на этом форуме постоянно ставите `?

ну как бы SQL синтаксис такой.

(Добавление)

Bio man пишет:
1000 постов

Больше не отвечай ничего. Красивая цифра. Улыбка

ну или до 1024 догони Улыбка

(Отредактировано автором: 26 Марта, 2012 - 00:00:04)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB