mysql | Запрос из пустого столбца и FIND_IN_SET
У меня есть стол:
id name position status
1 A 1,2 1
2 B 1 1
3 C 1
4 D 2 1
Куда: position
столбец - текстовое поле; Моя просьба здесь:
SELECT `id`
FROM `table`
WHERE `status`=1
AND `position` > ''
AND `position` = FIND_IN_SET( 1, `position` )
OR `position` = FIND_IN_SET( 2, `position` )
Этот запрос вернет: 1,2,3,4. Это неправильно, так как мне нужно: 1,2,4 -> Состояние: (position
> ''). Где проблема и как изменить мой запрос? Благодарю.
1 ответ
Решение
Вам не нужно проверять, если позиция пуста, пока вы проверяете числа в списке полей.
вам не нужно проверять position = FIND_IN_SET....
, он вернет значение, где 1 находится в положении.
вам нужно сделать это так:
SELECT `id`
FROM `table`
WHERE `status`=1
AND FIND_IN_SET( 1, `position` )
OR FIND_IN_SET( 2, `position` )