Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Passando o nome da coluna como parâmetro no MySQL


Quanto a passar um nome de coluna como parâmetro no MySQL (a pergunta no título), isso não é possível em uma instrução SQL. Os identificadores em uma instrução SQL (por exemplo, os nomes das tabelas e das colunas) devem fazer parte do texto SQL. Esses não podem ser passados ​​com um marcador de posição de vinculação.

O IN O operador de comparação espera uma lista de valores entre parênteses ou uma consulta SELECT entre parênteses que retorna um conjunto de valores.

Não está claro o que você está tentando fazer.

Suspeito que template_allowed_parent_templates é uma coluna na tabela e contém uma lista de valores separados por vírgulas. (estremece.)

Suspeito que você esteja procurando pelo MySQL FIND_IN_SET função string, que "procurará" uma lista separada por vírgulas por um valor específico.

Como uma simples demonstração:
  SELECT FIND_IN_SET('5', '2,3,5,7')
       , FIND_IN_SET('4', '2,3,5,7')

A função retorna um número inteiro positivo quando o valor especificado é "encontrado". Você pode usar essa função em um predicado, por exemplo.
WHERE FIND_IN_SET(id,template_allowed_parent_templates)

ou
WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)

(Isso funciona porque no MySQL um inteiro positivo é avaliado como TRUE em um contexto booleano.)

Estou apenas supondo o que você está tentando realizar.