Como Concatenar String SQL

Estou usando um botão para excluir dados de uma tabela… Mas está acontecendo o seguinte:
Eu coloquei para excluir de acordo com uma ordem que uso para cadastrar, mas chegamos em 1 caso que as ordem estão repetindo e se eu for excluir uma ordem e ela estiver igual, está excluido os dados que utilizam a mesma ordem. Gostaria de saber como faço para concaternar essa ordem com um outro campo para que não possa excluir os dados com as mesmas ordens.

Segue a baixo minha string slq q estou utilizando para excluir e gostaria de saber como faço para adicionar os outros dados para que possa excluir com base nos 2 dados.

String sql = “delete from Cadastro_Testes where ORDEM=?”;

os dados que gostaria de adicionar são: TCPERFIL e TCTESTE

alguém poderia me ajudar? estou usando o netbeans.

Ao invés de usar o operador igual, use o operador in. Algo assim:

String sql = "delete from Cadastro_Testes where ORDEM in (?)";

Daí você pode passar quantos números de ordem quiser, separados por vírgula. Algo assim:

String params = "'TCPERFIL', 'TCTESTE'";

Abraço.

no caso ficaria assim? String sql = “delete from Cadastro_Testes where ORDEM in (?),‘TCPERFIL’, ‘TCTESTE’”;

Não. Se você está usando preparedstatement, a interrogação será substituída pelos parâmetros. O comando final ficaria:

"delete from Cadastro_Testes where ORDEM in ('TCPERFIL', 'TCTESTE')";

Abraço.

Acho que AND resolve seu problema também.

"delete from Cadastro_Testes where ORDEM=? AND TCPERFIL=? AND TCTESTE=?";

No caso específico do operador IN, não dá pra usar PreparedStatement para setar os valores do conjunto como se fossem parâmetros posicionais.
Terá que montar a String com o operador IN contendo explicitamente os elementos do conjunto:

"delete from Cadastro_Testes where ORDEM in ('TCPERFIL', 'TCTESTE')"

1 curtida

Não sabia dessa, valeu o aviso. :wink:

Isso não funciona para o caso porque TCPERFIL e TCTESTE são valores da coluna ORDEM, não outras colunas da mesma tabela.

Abraço.