Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Есть запрос который работает на ура
Код:
SELECT last_title, last_id, last_post
        FROM `ibf_forums`
        WHERE read_perms='2,3,4,6'
        ORDER BY `last_post` DESC
        LIMIT 0 , 15";

А как сделать чтоб он искал не '2,3,4,6' а все где встречается двойка
Я в MySQL (пока) полный чайник, поэтому не смейтесь особо

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G



Партнер
 

Во-первых, RTFM, батенька, RTFM: http://dev.mysql.com/doc/mysql/ru/index.html
Ну а во-вторых, читайте вот эту страницу http://dev.mysql.com/doc/mysql/ru/String_functions.html и обратите внимание, например, на FIND_IN_SET.


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Karabeynik
Цитата:
Во-первых, RTFM

Я предупреждал :oops:
Цитата:
Я в MySQL полный чайник

А во вторых, ЛМАО ещё больше, :applause:
я не понял как эту FIND_IN_SET использовать, :bandhead:
не мог бы кто нибудь привести пример :D

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Можно так
Код:
SELECT last_title, last_id, last_post
        FROM `ibf_forums`
        WHERE read_perms like '%2%'
        ORDER BY `last_post` DESC
        LIMIT 0 , 15";


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Ray Adams :beer: работает :D

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Vladson писал(а):
А во вторых, ЛМАО ещё больше, :applause:
я не понял как эту FIND_IN_SET использовать, :bandhead:
не мог бы кто нибудь привести пример :D


[флейм удален. vor]

У тебя идёт перечисление в строке вида "str1,str2,str3". FIND_IN_SET ищет вхождение первого указаного ему параметра (строки) в такой последовательности (указанной вторым параметром) и возвращает его порядковый номер или ноль, если не найдено ничего. Т.е. для поиска '2' в read_perms тебе нужно написать FIND_IN_SET('2',read_perms) и всё.
Таким образом твой запрос:

Код:
SELECT last_title, last_id, last_post
        FROM `ibf_forums`
        WHERE FIND_IN_SET('2',read_perms)
        ORDER BY `last_post` DESC
        LIMIT 0 , 15";


Этот запрос выберет строки, если в столбце "2,3,4,5" или "5,4,3,2", но не "20,3,12,5".

Данный вариант подходит тебе, если ты исползуешь именно формат перечисления. Если же тебе нужно найти присутствие любой двойки, в независимости от её положния, в том числе и в строках типа '20', '22', '245' или 'Roza2' , то тебе подходит вариант Ray Adams, который просто ищет любую двойку в строке.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan