Sql 在执行查询中将字符追加到变量

Sql 在执行查询中将字符追加到变量,sql,postgresql,Sql,Postgresql,我想执行一个动态SQL语句,它搜索姓氏始终为常量而姓氏始终为变量的名称。 下面是我编写的一个查询,用于选择名为class='Test lastname'的行 EXECUTE 'SELECT name FROM users WHERE name=$1 lastname' USING ('Test'); 这将生成一个语法错误。可以这样做吗?我想你需要这样的东西: EXECUTE 'SELECT user_id FROM users WHERE name=$1

我想执行一个动态SQL语句,它搜索姓氏始终为常量而姓氏始终为变量的名称。 下面是我编写的一个查询,用于选择名为class='Test lastname'的行

EXECUTE 'SELECT name FROM users 
        WHERE name=$1 lastname'
USING ('Test');  

这将生成一个语法错误。可以这样做吗?

我想你需要这样的东西:

EXECUTE 'SELECT user_id FROM users 
        WHERE name=$1'
USING  Test||' lastname' ; 
这里Test是变量,“lastname”是硬编码值

另一种方法是@JorgeCampos提到的:

...WHERE name=$1 || '' lastname''' USING 'Test';

你说常数是什么意思?硬编码值?调试:将sql存储到一个变量中,并写出该变量,以便查看生成的内容。@Otshavadze yesAlmost。。。因为lastname似乎是users表中的一列,我想他想要:…其中name=$1 | | lastname'使用'Test'@JorgeCampos-据我所知,他只有name列,并在其中存储名字和姓氏。我想要name='Test lastname'的行,其中姓氏始终是'lastname',而first name是一个变量。到目前为止没有区别。当他问你答案的时候,我想你的答案仍然是“测试”姓的变化。由于您提供了正确的方法,尽管略有不同,我选择仅配合您的回答:cheers@JorgeCampos-啊,我现在明白了,你的评论之前。。。再次感谢各位: