FIND_IN_SET не находит значения на краях стога сена - PullRequest
0 голосов
/ 23 октября 2018

У меня есть таблица со столбцом с именем category, одна строка (которую я пытаюсь найти) имеет значение в этом столбце '17,1,3'.Я выполняю следующие несколько запросов с указанными результатами:

SELECT * FROM firms WHERE FIND_IN_SET(17, category) > 0;

0 результатов

SELECT * FROM firms WHERE FIND_IN_SET(1, category) > 0;

1 результатов

SELECT * FROM firms WHERE FIND_IN_SET(3, category) > 0;

0 результатов

Почему он не возвращает никаких результатов, когда искомое значение находится на краю списка?Это можно повторить и для более длинных списков, если у меня есть 5 чисел, то он отлично работает со средним 3, но не с внешним 2. Спасибо за вашу помощь.

Ответы [ 2 ]

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

используйте, как он вернет все три случая

 select * from firms where category like '%17%'
 select * from firms where category like '%3%'
 select * from firms where category like '%1%'
0 голосов
/ 23 октября 2018

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

Попробуйте:

SELECT * FROM firms WHERE FIND_IN_SET('17', category) > 0;

и

SELECT * FROM firms WHERE FIND_IN_SET('3', category) > 0;

Также, обратите внимание, что у вас есть косые черты в конце и начале строки category, которые мешают.Вам нужно избавиться от этих слешей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...