MySQL, возвращение строки с использованием find_in_set не работает должным образом - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь выполнить следующую команду MySQL:

SELECT ID, intervention_post_title, linked_article FROM wp_cpt_combined WHERE FIND_IN_SET (72, habitat_type)

Внутри моей базы данных столбец привычный_тип (так как это поле с множественным выбором) хранит значения как "

id  habitat_type
1   [72, 74]
2   [70]
3   [71]

Приведенная выше команда sql не возвращает строк - что мне не хватает? Мне нужно иметь возможность вернуть строку 1, используя find_in_set (72, среда обитания) или find_in_set (74, среда обитания) и т. Д. Должен ли я сделать замену, чтобы удалитьквадратные скобки?

Любая помощь будет принята с благодарностью.

D.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Вы можете сделать это, убрав квадратную скобку find в множествах, таких как Find_in_set (72, '72, 73,74 '), она вернет позицию 72, т.е. 1, а find_in_set (72, '73, 72,74')т.е. 2, так что вы также можете попробовать использовать условный оператор find_in_set (72, '72, 73 ')> 0

0 голосов
/ 15 октября 2018
  • Вы можете использовать функцию REPLACE() для замены вхождений [ и ] пустой строкой.

Попробуйте выполнить следующее:

SELECT 
  ID, 
  intervention_post_title, 
  linked_article 
FROM wp_cpt_combined 
WHERE FIND_IN_SET ('72', REPLACE(REPLACE(habitat_type, '[', ''), ']', ''))
...