SQL查询中的参数where子句

时间:2020-05-01 07:34:54

标签: mysql sql parameters pentaho

我将像这样运行查询

SELECT * FROM table1
WHERE datasource_detail = '{"datasource_detail":[{"db_name":"database_temp","port":"3306","db_username":"root","host":"localhost","tab1":"table1","tab2":"table2"}]}'

但是需要获取参数

我尝试了一下,但是效果不佳

SELECT * FROM table1
WHERE datasource_detail = '{"datasource_detail":[{"db_name":"database_temp","port":"3306","db_username":"root","host":"localhost","tab1":"'${tab1}'","tab2":"'${tab2}'"}]}'

有人帮助我吗?

哦,我在pentaho数据集成中运行此查询:输入表

1 个答案:

答案 0 :(得分:0)

我建议您应该尝试将比较值放入@Variable

Declare @Compared_Value nvarchar(500);
Set @Compared_Value = '{"datasource_detail":[{"db_name":"database_temp","port":"3306","db_username":"root","host":"localhost","tab1":"'${tab1}'","tab2":"'${tab2}'"}]}'

SELECT * FROM table1
WHERE datasource_detail = @Compared_Value

如果比较值的一部分是动态的,则应使用CONCAT语句来建立比较值 设置@Compared_Value = CONCATE(第1部分,第2部分,...)

相关问题