Lors de la création de requêtes SQL, il est crucial de comprendre la distinction entre les backticks ( ) et les guillemets simples (' ») . Dans MySQL, les backticks encapsulent les noms d'objets tels que les tables et les colonnes, tandis que les guillemets simples enferment des chaînes.
Exemple :
<code class="sql">SELECT * FROM `users`;</code>
Dans cette requête, les backticks protègent les utilisateurs le nom de la table ne soit pas interprété comme un mot-clé. Sans backticks, la requête entraînerait une erreur de syntaxe.
La fonction IF peut être utilisée dans les requêtes SQL en tant que spécification de colonne. Il faut trois arguments : une condition, une valeur vraie et une valeur fausse.
Exemple :
<code class="sql">SELECT IF(value = '', default, value) AS new_value;</code>
Cette instruction crée une nouvelle colonne nommée new_value. Si la colonne de valeur est vide (''), la nouvelle colonne contiendra la valeur par défaut. Sinon, il contiendra la valeur de value.
Dans le code CodeIgniter fourni, la section suivante est particulièrement intéressante :
<code class="sql">$this->db->select('slug, type, IF(`value` = "", `default`, `value`) as `value`', FALSE);</code>
Par en définissant le deuxième paramètre de select() sur FALSE, CodeIgniter s'abstient d'envelopper les noms de champs et de tables dans des backticks. Ceci est nécessaire car la fonction IF nécessite que la colonne de valeur soit spécifiée sans backticks.
Par conséquent, la requête créera une nouvelle colonne nommée valeur :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!