2017-01-17 2 views
-2

Я знаю, что могу использовать это, чтобы проверить, содержит ли столбец одно из двух значений.Вернуть результаты mySQL для переменной числа 'LIKE'

select * from table where field like 'something' or field like 'somethingelse'

Однако, в моей ситуации, у меня есть переменное число LIKE для проверки. В моем коде есть в основном два шага ... получить идентификаторы отчетов, к которым пользователь может получить доступ (номер переменной), а затем получить информацию для каждого из этих отчетов.

Я не уверен, как сделать один запрос, чтобы сделать это, хотя (предполагая, что это можно сделать).

+1

ли вы попробовать 'в' запрос типа:' выберите * из таблицы, где идентификатор в (1,2,3) ', где 1 2 3 являются идентификаторами отчетов – webmaster

+0

также просматривайте вспомогательные запросы, например, получите идентификаторы и поставьте эти ID в другой запрос. См. Предложение @webmaster и поместите свой запрос, который даст вам идентификаторы, например. '..... где id in (ваш запрос на выборку идентификаторов)' – webDev

+0

Похоже, вам придется динамически создавать LIKE-часть вашего запроса в строковой переменной в зависимости от того, какие элементы управления вам нравятся. – RiggsFolly

ответ

0

получить идентификаторы отчетов о том, что пользователь может получить доступ (номер переменной)

Чтобы подготовить Ид часть запроса, вы можете сделать что-то вроде (псевдо-код)

EDIT : Я не знаю, получаете ли вы идентификаторы из базы данных или сети, поэтому это строковое решение для обоих, но вы можете заменить список идентификаторов «(select id from another_table where some_field = some_criteria)»

string idsString = "("; 
index for ids do 
    idsString += ids[index] 
    if not last item 
    idsString += "," 
done 
idsString += ")"; 

, а затем получить информацию для каждого из этих отчетов.

, чтобы завершить запуск запроса:

string queryStrnig = "select * from table where id in " + idsString;