Выберите несколько строк в таблице MySQL на основе строки с разделителями-запятыми

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

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

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

1 ответ

Вам нужен 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)
Другие вопросы по тегам