Ich brauche eine MySQL-Abfrage in aktiver Datensatz codeigniterWie eine bestimmte Bedingung in Klammern in aktiver Datensatz schreiben codeigniter
SELECT `user_id`
FROM `tb_user_answers`
WHERE (`question_id` = '1' AND `answer_id` = '2')
AND (`question_id` = '2' AND `answer_id` IN (4, 6))
AND (`question_id` = '3' AND `answer_id` IN (8,9,10))
Ich habe versucht, zu konvertieren, konnte aber mit dem folgenden Code tun, dass
$this->db->select('user_id');
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 1 && $dropdown['answer_id'] != 0){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where('answer_id', $dropdown['answer_id']);
}
}
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 2 && $dropdown['answer_id'] == 1){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where_in('answer_id',[4,6]);
}
}
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 3 && $dropdown['answer_id'] == 1){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where_in('answer_id',[8,9,10]);
}
}
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 4 && $dropdown['answer_id'] == 1){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where_in('answer_id',[12,13]);
}
}
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 5 && $dropdown['answer_id'] == 1){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where_in('answer_id',[16,17]);
}
}
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 6 && $dropdown['answer_id'] == 0){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where('answer_id',19);
}
}
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 7 && $dropdown['answer_id'] == 0){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where('answer_id',22);
}
}
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 8 && $dropdown['answer_id'] == 1){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where('answer_id',24);
}
}
foreach($user_preference_dropdown as $dropdown){
if($dropdown['question_id'] == 9 && $dropdown['answer_id'] == 1){
$this->db->where('question_id',$dropdown['question_id']);
$this->db->where_in('answer_id',[26,27]);
}
}
$query = $this->db->get('tb_user_answers');
die Ausgabe der obigen Abfrage ist:
SELECT `user_id`
FROM `tb_user_answers`
WHERE `question_id` = '1'
AND `answer_id` = '2'
AND `question_id` = '2'
AND `answer_id` IN(4, 6)
AND `question_id` = '3'
AND `answer_id` IN(8, 9, 10)
AND `question_id` = '4'
AND `answer_id` IN(12, 13)
AND `question_id` = '5'
AND `answer_id` IN(16, 17)
AND `question_id` = '6'
AND `answer_id` = 19
AND `question_id` = '7'
AND `answer_id` = 22
AND `question_id` = '8'
AND `answer_id` = 24
AND `question_id` = '9'
AND `answer_id` IN(26, 27)
die [Abfrage Gruppierung] prüfen (https: // www .codeigniter.com/userguide3/database/query_builder.html # Abfragegruppierung) Abschnitt der Dokumentation –