我想要做的是执行一个包含where
子句(“结果查询”)的MySQL查询,该子句存储在数据库的一列中。此列包含查询,是另一个查询(“原始查询”)的结果。
捕获:
(结果查询列表以及where
子句中的变量将由我定义,因此我将列出所有可能的变量。)
基本上,我需要能够将该变量与任意数量的其他值相关联,例如:数据库中的user_id。
original_query_table | result_query_table
--------------------------------------------------------------
other_id result_query_id | result_query_id result_query
1 1 1 "SELECT ... WHERE user_id = :id "
我知道如何使用两个单独的查询来执行此操作,但问题是这是否可以只使用一个查询?
答案 0 :(得分:1)
我会做这样的事情:
SELECT 'select * from table_a where col_a = ?' INTO @query, 1 into @param1 FROM dual;
PREPARE stmt FROM @query;
EXECUTE stmt USING @param1 ;
所以将它转换成你的表格,我想看起来像:
SELECT a.result_query INTO @query, b.result_query_id INTO @param1 FROM result_query_table a, original_query_table b where a.result_query_id = b.result_query_id;
PREPARE stmt FROM @query;
EXECUTE stmt USING @param1 ;
你知道where子句需要多少参数吗?如果这是动态的,那么事情可能会有点棘手。