Estoy utilizando la siguiente zend código para seleccionar todos los datos de una tabla donde verificado=1 y que se está trabajando para mí.

$table = $this->getDbTable();
$select = $table->select();
$select->where('verified = 1');
$rows = $table->fetchAll($select);

No quiero para seleccionar todos los datos de esa tabla donde verificado no es igual a ‘1’. He probado las siguientes maneras, pero no es la obtención de datos.

$select->where('verified != 1');
$select->where('verified <> 1');
$select->where('verified != ?', 1);

Estructura de datos para «verificado» columna:

Field: verified
type: varchar(45)
Collation: utf8_bin         
NULL: Yes   
Default: NULL  

Cualquier idea de cómo usar ‘no es igual a» operador en la cláusula where en Zend? Gracias

  • ¿Tiene datos en su base de datos donde se verificó != 1?
  • Sí. Hay muchos valores Nulos,0s y 1s en verificadas columna.
  • Probado ejemplo, agregado a ansver. y los Nulos son especiales columnas. que sólo puede ser activada por ES NULO / NO ES NULL
  • Hola SM: Si estoy comprobando cualquier valor distinto de 1. Sólo quiero saber que hay 1 o cualquier otra cosa.
InformationsquelleAutor Naveed | 2009-12-19

5 Comentarios

  1. 4

    MySQL soporta una costumbre operador <=> que devuelve true si los operandos son iguales o ambos nulos. Devuelve false si son diferentes, o si uno de los operandos es null.

    $select->where('verified <=> 1');

    Este operador no es estándar. Estándar SQL tiene la sintaxis: IS NOT DISTINCT FROM que funciona como MySQL <=>.

  2. 5
    $select->where('verified != ?', 1);

    Real worls ejemplo de consulta:

        $query = $this->getDb()->select();
        $query->from('title', array('title_id' => 'id', 'title', 'production_year', 'phonetic_code'))
                ->where('kind_id = 1')
                ->where('title = ?', trim($title))
                ->where('production_year != ?', '2009')
                ->limit(1)
                ;

    Selecciona las películas de la info de la base de datos de IMDB. Funciona bien.

    • No es de trabajo. Agregó que se trate.
  3. 1

    Puede que nos muestran la estructura de tabla para la tabla que está consultando? Es la columna verificado un int o string? También pruebe a imprimir de la instrucción SQL que ZEND construye, ver el eco de la línea de abajo.

    $table = $this->getDbTable();
    $select = $table->select();
    $select->where('verified = 1');
    echo sprintf("sql %s",$select);
    $rows = $table->fetchAll($select);
    • estructura db se agrega en cuestión para verificar columna.
  4. 0

    Tratar :

    $select->where('verified != ?', '1');

    poner entre comillas el valor. Se está trabajando para mí.

Dejar respuesta

Please enter your comment!
Please enter your name here