2016-05-28 2 views
4

Я ищу способ проверить, присутствует ли значение в одной из строк столбца страницы.проверить, присутствует ли значение в одной из строк базы данных.

Например, если необходимо проверить, присутствует ли значение «45»?

Id | page  | 
--------------- 
1 | 23  | 
--------------- 
2 |   | 
--------------- 
3 | 33,45,55 | 
--------------- 
4 | 45  | 
--------------- 

ответ

2

find_in_set функция только то, что вы ищете:

SELECT * 
FROM mytable 
WHERE FIND_IN_SET('45', page) > 0 
+1

Это работает! благодаря – user759235

1

Вы не должны хранить значения в списках. Это особенно верно в этом случае:

  • Значения должны храниться в соответствующем типе данных. Вы сохраняете числа как символы.
  • Внешние отношения должны быть правильно определены.
  • SQL не имеет очень хороших функций обработки строк.
  • Результирующие запросы не могут использовать индексы.
  • SQL имеет отличный тип данных для списков, называемый стол. В этом случае вам нужна таблица соединений.

Иногда вы застряли в очень плохих проектных решениях других людей. В этом случае вы можете использовать find_in_set(), как предложено Mureinik.

Смежные вопросы