Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos preciso selecionar vários ID dentro de uma coluna... eu preciso que além do ID 32, preciso que me retorne os ids 11,22 e 11
tentei fazer algumas coisas e não consegui ainda... vou colar apenas a linha com problema:
AND bairro LIKE '32'
Se puderem ajudar obrigado...
ja tentou o between?
Primeiramente, não se deve armazenar IDs em uma única coluna, se for o caso, deve ser feito um relacionamento.
Crie uma outra tabela informando os IDs das tabelas relacionadas. Por exemplo, uma lista de contatos de um usuário, vou criar uma tabela simples chamada usuarios:
CREATE TABLE usuarios (
id SMALLINT NOT NULL AUTO_INCREMENT,
nome VARCHAR(70) NOT NULL,
login VARCHAR(20) NOT NULL,
password VARCHAR(32) NOT NULL DEFAULT '1234',
PRIMARY KEY(id)
) Engine = MyISAM
Eu poderia criar a coluna intitulada fone_contato VARCHAR(50) e colocar um contato após o outro, mas criarei uma outra tabela chamada fone_contato:
CREATE TABLE `fone_contato` (
`id` INT NOT NULL AUTO_INCREMENT,
`ddd` TINYINT NULL,
`telefone` INT NULL,
`id_usuario` SMALLINT NOT NULL,
PRIMARY KEY(`id`)
) Engine = MyISAM
NOTA: O relacionamento é feito entre o campo id da tabela usuarios e o campo id_usuario da tabela fone_contato, por tanto, devem ser iguais.
A SQL para consultar o contato de cada usuário seria esta abaixo, trazendo cada contato em uma linha.
SELECT
u.id,
u.nome,
f.ddd,
f.telefone
FROM usuarios AS u
LEFT JOIN fone_contato AS f
ON f.id_usuario = u.idAqui vai o código completo:
SELECT *
FROM tabela_1
WHERE Data
BETWEEN '2013-12-01'
AND '2014-03-30'
AND tipoId LIKE '19'
AND bairroId LIKE '32' // aqui que está o problema... esse campo armazena números e além do '32', eu preciso de 11,12,.... e outros
AND HoraEntrada
BETWEEN '21:00'
AND '23:59'
Assim dá pra entender melhor?
se entendi direito, basta trocar isto:
AND bairroId LIKE '32'
por isto
AND bairroId IN (11, 22, 32)
Se não for isso, tente explicar melhor, pois cada um entendeu uma coisa diferente
@Beraldo, acredito que ele armazene os IDs necessários num campo VARCHAR, tudo separado por vírgulas ("11,22,32"), com o IN não funcionaria pois o IN identifica o que for igual aos valores especificados.
@Douglas Fabiano, qual a razão de armazenar mais de um ID?
Não entendi direito. Você quer selecionar registros a partir de uma lista de IDs? Se for isso, poderia fazer o seguinte:
Select campos From tabela Where id IN(11, 22, 32);