Перейти к публикации
andrey35159

PHP FIND_IN_SET

Рекомендованные сообщения

andrey35159

Есть таблица:

 

title              | numbers

Залоговок1   | 1,4

Заголовок2   |  1,5

Заголовок3   |  2

Заколовок4   |  8,5,4

Заголовок5   |  3,1

 

Делаю запрос вывести строки с numbers значением 1,2

Он должен вывести строки с title:

Заголовок1, Заголовок2, Заголовок3, Заголовок5

т.е строки, где есть числа 1 или 2

Если использовать в MySQL - FIND_IN_SET ,например если хочу вывести 8,5 , то он выведет Заголовок4, хотя должен вывести еще Заголовок2, а если ввести 8,4, то ничего не выведет, а должен Заголовок1 и Заголовок4.

 

Может надо использовать другой метот, кто нибудь подскажет?  :inevex:

Изменено пользователем andrey35159

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TheAndrey

 

SELECT * FROM table WHERE `number` LIKE '%1%' OR `number` LIKE '%2%'

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
andrey35159

А если будет запись например 1 и 13, и запросом с % он выведет два результата



Никто не знает как решить проблему?  :okay:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dredei

Можно что-то типа такого:

WHERE `number` RLIKE '^1,' OR `number` RLIKE ',1$' OR `number` LIKE '%,1,%' OR `number` = '1';

Т.е. либо вначале нужное число, либо в конце, либо в средине.

Изменено пользователем dredei

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dredei

Утром голова лучше работает :) Можно сделать одной регуляркой:

WHERE `number` RLIKE '^1,|,1$|.*,1,.*|^1$'

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...