Quelles sont les différences entre backtick et guillemet simple? Puis-je utiliser l'instruction IF dans une requête comme ci-dessus?

StackOverflow https://stackoverflow.com/questions/2122721

Question

Dans le CodeIgniter manuel écrit ce qui suit.

  

$ this-> db-> select () accepte une   deuxième paramètre facultatif. Si vous définissez   à FAUX, CodeIgniter ne pas essayer   pour protéger vos noms de champs ou de table   avec des accents graves. Ceci est utile si vous   besoin d'un composé instruction select.

$this->db->select('(SELECT SUM(payments.amount) FROM payments 
WHERE payments.invoice_id=4) AS amount_paid', FALSE);
$query = $this->db->get('mytable');
...

Et j'ai le code suivant de une des applications CI .

$this->db->select('slug, type, 
IF(`value` = "", `default`, `value`) as `value`', FALSE);

Q1. Quelles sont les différences entre backtick `et guillemet simple?

Q2. Puis-je utiliser l'instruction IF dans une requête comme ci-dessus?

Q3. Qu'est-ce que cela signifie?

IF(`value` = "", `default`, `value`) as `value`
Était-ce utile?

La solution

  1. MySQL, citation Noms , tandis que des guillemets simples créent chaînes . Si vous avez une colonne appelée select, MySQL jetterait une erreur de syntaxe lorsque vous utilisez ce nom sans accents graves - comme dans SELECT select FROM foo -. Comme il l'interpréter comme mot-clé qui ne peut se produire là-bas

  2. IF Fonction peut être utilisé comme une spécification de colonne dans les instructions SELECT. Voir référence MySQL .

  3. Cette fonction retourne la valeur de la colonne de default, si value est la chaîne vide. Sinon, il renvoie la valeur de value elle-même. Le résultat sera appelé value. Voir la de référence MySQL pour les détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top