2010-03-29 6 views
0

Je voulais écrire requête suivante dans la classe d'aide db de CodeIgniter, guide-moi plzmysql, sensible à la casse comparer par CodeIgniter

SELECT * FROM table where column like binary "abc"; 

J'ai essayé

$this->db->select("*"); 
$this->db->from("table"); 
$this->db->like("column","binary abc"); 
$this->db->get(); 

mais il produit

SELECT * FROM table WHERE column like '%binary abc%' 

Répondre

11

Il n'est pas directement pris en charge par l'aide comme(), mais vous pouvez faire ceci:

$result = $this->db 
    ->where('column like binary "abc"', NULL, FALSE) 
    ->get('table') 
    ->result(); 

Une autre méthode est la suivante:

$result = $this->db 
    ->where('LOWER(column)', strtolower($foo), FALSE) 
    ->get('table') 
    ->result(); 

Remarquez que j'utilise le chaînage de méthode, c'est un peu plus rapide et pour moi c'est plus propre.

+0

Il cas abaissera la valeur du champ et correspondre avec l'entrée d'utilisateur minuscules, il met également à jour la sensibilité des données réelles, signifie si l'utilisateur entrer « ABCD » il correspondra avec abcD dans la base de données qui est faux. Existe-t-il un autre moyen de travailler avec des enregistrements sensibles à la casse, à l'exception de la modification du classement des colonnes. – Adnan

0

utilisation:

$ this-> db-> où ('column like binary' abc '');
$ resultat = $ this-> db-> get ('table');

Cordialement,
Pedro

0

que j'ai utilisé et cela a fonctionné

$this->db->from("table_name"); 
$this->db->where('column_name like binary', $value); 
Questions connexes