Для создания SQL-запроса для поиска данных в базе данных MySQL, вы можете использовать следующий синтаксис:
```sql
SELECT * FROM table_name WHERE condition;
```
Где `table_name` - имя таблицы, в которой вы ищете данные, а `condition` - условие, по которому происходит поиск.
Чтобы настроить запрос так, чтобы результаты выдавались даже при наличии одинаковых значений поля `caption`, но разных значений поля `value`, вы можете использовать оператор `IN` для сравнения значений поля с различными вариантами значений.
Пример SQL-запроса с оператором `IN`:
```sql
SELECT * FROM table_name WHERE caption = 'value1' AND value IN ('value1', 'value2', 'value3');
```
В данном примере, при условии что `caption` равен 'value1', будут выбраны все строки, где значение поля `value` равно 'value1', 'value2' или 'value3'.
Если в списке `IN` может быть до 50 значений, то вы можете сгенерировать такой список динамически в вашем приложении и вставить его в запрос.
Например, если у вас есть список значений в массиве `values`, который содержит до 50 значений, вы можете сгенерировать запрос следующим образом:
```sql
SELECT * FROM table_name WHERE caption = 'value1' AND value IN ('value1', 'value2', 'value3', ..., 'value50');
```
Где 'value1', 'value2', 'value3', ..., 'value50' - это динамически сгенерированный список значений из вашего массива.