Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> SQL запрос
zhenia3003  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 135
Пользователь №: 32926
На форуме: 5 лет, 14 дней
Карма:




Правильно ли составлен SQL запрос? Смущает плюс между IF, в документации ничего не нашел про плюс

$search = "слово";
$query = "SELECT *, (IF (`title` LIKE '%".$search."%', 60, 0) + IF (`text` LIKE '%".$search."%', 10, 0)) AS `relevant`
FROM `table`
WHERE (`title` LIKE '%"
.$search."%' OR `text` LIKE '%".$search."%')
ORDER BY `relevant` DESC"
;
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 6 дней
Карма: 739




Цитата
Смущает плюс между IF, в документации ничего не нашел про плюс

если не нашёл, чё пишешь?


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Oyeme  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1725
Пользователь №: 16955
На форуме: 8 лет, 4 месяца, 24 дня
Карма: 96




+ уберите

Почитай об nested IF

http://komlenic.com/254/mysql-nested-if-in-select-queries/


--------------------
Programming: Private lessons via skype £45/h

Частные уроки в Лондоне / удаленно по skype.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 390
Пользователь №: 40589
На форуме: 2 года, 7 месяцев, 16 дней
Карма: 22




Oyeme
а по моему у автора более изящное решение, чем куча вложенных if.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Oyeme  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1725
Пользователь №: 16955
На форуме: 8 лет, 4 месяца, 24 дня
Карма: 96




Цитата (depp @ 22.03.2017 - 08:46)
Oyeme
а по моему у автора более изящное решение, чем куча вложенных if.

Не заметил что он складыает числа,показалось что хочет сделатьконкатинацию строк if, else.
Тогда все верно сделано.


--------------------
Programming: Private lessons via skype £45/h

Частные уроки в Лондоне / удаленно по skype.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
zhenia3003  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 135
Пользователь №: 32926
На форуме: 5 лет, 14 дней
Карма:




Да, складываю числа из массива IF (для сортировки по этим числам), реализую таким образом поиск, но он медленно работает при подгрузке через ajax, возможно есть какое-нибудь более интересное решение???
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев
Карма: 176




Цитата (zhenia3003 @ 22.03.2017 - 13:00)
возможно есть какое-нибудь более интересное решение?

я думал не спросишь...
полнотекстовый поиск, самое что ни на есть решение


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
zhenia3003  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 135
Пользователь №: 32926
На форуме: 5 лет, 14 дней
Карма:




У меня на локальном сервере mysql 5.6-5.7 вылетает ошибка при sql запросе

ALTER TABLE `table` ADD FULLTEXT (
`text`
);

Прекращена работа программы mysqld.exe, в чем может быть проблема?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
zhenia3003  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 135
Пользователь №: 32926
На форуме: 5 лет, 14 дней
Карма:




#2006 - MySQL server has gone away
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 390
Пользователь №: 40589
На форуме: 2 года, 7 месяцев, 16 дней
Карма: 22




тип таблицы какой?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
zhenia3003  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 135
Пользователь №: 32926
На форуме: 5 лет, 14 дней
Карма:




InnoDB, с 5.6 версии туда добавили полнотекстовый поиск вроде
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
zhenia3003  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 135
Пользователь №: 32926
На форуме: 5 лет, 14 дней
Карма:




Скачал другую сборку виртуального сервера, удалось добавить полнотекстовый индекс, но вот новая проблема, подскажите почему, если в MATCH(title) указать одно поле, например title поиск работает, а с двумя полями нет? Вот sql запрос

SELECT * FROM `table` WHERE MATCH (title, text) AGAINST ('Поисковая фраза')
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев
Карма: 176




zhenia3003, фултекст должен быть на оба поля, и не забывайте про обратные слеши в названиях таблиц и полей, text - это зарезервированное слово, без слешей СУРБД не знает что вы так обозвали своё поле и воспринимает написанное как конструкцию самого языка
по поводу сервера используйте ОпенСервер


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
zhenia3003  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 135
Пользователь №: 32926
На форуме: 5 лет, 14 дней
Карма:




Спасибо за подсказку насчет оба поля, создал одним запросом и заработало

ALTER TABLE `table` ADD FULLTEXT(`title`,`text`);

А до этого добавлял индекс по одному полю.
Что касаемо ошибки, она появлялась на ОпенСервер обычная версия, поставил расширенную и заработало
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
zhenia3003  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 135
Пользователь №: 32926
На форуме: 5 лет, 14 дней
Карма:




Еще вопрос, почему результаты поиска MATCH AGAINST разные с LIMIT и без него?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса