Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявка за база данни на CodeIgniter с помощта на query() с клауза IN

Това е правилно поведение. CI избягва кавички, преди да ги изпрати на MySQL. Вероятно трябва да използвате масив за филтъра и да конструирате нещо подобно (не е тествано;) )

$filter = array('a','b','c');
$sql = "SELECT t1.*, t2.* 
     FROM Table1 t1 
     INNER JOIN Table2 t2 
         ON  t1.id = t2.id 
         AND t2.title IN (". implode(',', array_fill(0, count($filter), '?')).") 
         AND t1.type = ? 
     ORDER BY t1.id";
//edit: check if $filter is not an array ( when it is a single value string )
$filter = is_array( $filter ) ? $filter : array( $filter );
$q = $this->db->query( $sql, array_merge( $filter, array( $type ) ) );

Трябва също така да пренапишете малко заявката:

$sql = "SELECT t1.*, t2.* 
     FROM Table1 t1 
     INNER JOIN Table2 t2 
         ON  t1.id = t2.id 
     WHERE
         t2.title IN (". implode(',', array_fill(0, count($filter), '?')).") 
         AND t1.type = ? 
     ORDER BY t1.id";



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да избера най-скорошния вход за всеки член?

  2. Как мога да генерирам SQL заявката с помощта на SQL::Abstract?

  3. MySQL:Разделете колоната на две

  4. Пакетен файл за свързване на mysql и изпълнение на команди

  5. Как да използвате MySQL и MSSQL заедно в източника на данни на grails?