╔═══╦══════════════╦═════════════╗
║ ║id ║name ║
╠═══╬══════════════╬═════════════╣
║ ║ 1 ║a1 ║
║ ║ 2 ║b1 ║
║ ║ 3 ║b2 ║
║ ║ 4 ║c1 ║
║ ║ 5 ║c2 ║
╚═══╩══════════════╩═════════════╝
Я работаю с Laravel и MySQL
Рассмотрим эту таблицу.
Я хочу создать все комбинации того, что указывает пользователь ввода. Например, если пользователь вводит (a,b)
, мой код должен сгенерировать (a1,b1) , (a1,b2)
Если пользователь вводит (b,c)
, мой код должен сгенерировать (b1,c1), (b1,c2), (b2,c1), (b2,c2)
Пока у меня есть следующий запрос:
DB::select(DB::raw("select t1.id as t1_id, t1.name as t1_name,
t2.id as t2_id, t2.name as t2_name,
t3.id as t3_id, t3.name as t3_name,
from (select * from table where name like 'a%') as t1
cross join (select * from table where name like 'b%') as t2
cross join (select * from table where name like 'c%') as t3"));
Однако этот запрос ограничен ситуацией, когда я знаю пользовательский ввод, например, в этом случае пользователь вводит 3 переменные, т.е. (a,b,c)
Как сделать запрос динамическим, чтобы он автоматически настраивался на основе пользовательского ввода.