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

У меня есть приложение со страницей со списком ресурсов.В верхней части страницы находится текстовое поле поиска, где пользователи могут вводить значения, такие как идентификатор, имя, местоположение и т. Д. Я хочу, чтобы пользователи могли вводить несколько значений в текстовое поле поиска, а MySQL возвращаластрока для каждого найденного значения.

Я ищу чистое решение MySQL, а не PHP или Python ...

Пример.Строка поиска: «161, Bob, Production, 123, 125», где все значения соответствуют различным столбцам (т. Е. Целые числа - это идентификатор, Bob - возможное имя, а Production - местоположение).Затем MySQL будет искать каждое значение, разделенное запятыми, и, если найдет, возвращает строку.Желательно, чтобы это было сделано в одном запросе, а не последовательно, где первый найден, отображен, затем второй и т. Д.

1 Ответ

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

Вам нужен оператор SQL IN

Что-то вроде этого сделает то, что вы ищете:

SELECT * FROM table_name
WHERE table_name.id IN (161, 'Bob', 'Production', 123, 125)
OR table_name.first_name IN (161, 'Bob', 'Production', 123, 125)
OR table_name.location IN (161, 'Bob', 'Production', 123, 125)
...