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

0

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

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

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

  • 0
    Вам нужна некоторая форма серверного языка, чтобы гарантировать, что SQL-инъекция не произойдет. Поиск на основе jquery может сделать результаты динамическими, когда пользователь вводит строку.
Теги:
ignition

1 ответ

0

Вам нужен оператор 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)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню