MySQL sélectionnez l'endroit où varchar longueur
Je suis en train de sélectionner tous les champs où la longueur d'un champ = X
L'objectif est de voir si un champ a 15 caractères (VARCHAR) et set type=Y
Quand je test le select
je serai de retour 0 lignes, ce qui est incorrect.
select *
from payment_options
where char_length(cc_type) = 15
J'ai essayé de longueur, char_length, etc, mais rien ne fonctionne.
Quelqu'un peut-il me guider dans la bonne direction, s'il vous plaît?
Merci.
Edit: Pour clarifier.
Je l'ai eu =( j'étais en précisant le mauvais champ.
Ce que je voulais faire est de mettre en cc_type à Amex si char_length(cc_masked) = 15
UPDATE payment_options
SET cc_type = "Amex"
WHERE char_length(cc_masked) = 15;
char_length
devrait fonctionner. Essayez d'exécuter SELECT CHAR_LENGTH(cc_type) FROM payment_options;
pour voir quelles sont les valeurs qu'il pourrait être de retour.Veuillez fournir des données de l'échantillon et le résultat souhaité. Qui va aider à faire de l'objectif clair.
OriginalL'auteur Bardworx | 2014-09-06
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez devrait fonctionner. Peut-être vous avez besoin de précisions sur les "rien ne fonctionne": jeu de résultats vide? erreur sql? quoi? Vous devez également indiquer votre schéma et les données de l'échantillon.
Peu importe, je suis allé de l'avant et a créé un sql violon montrer comment quelque chose comme ça pourrait fonctionner: http://sqlfiddle.com/#!2/7242e/8
Schéma et les Données de l'Échantillon
Votre Requête Existante
Fournit le jeu de résultats suivant:
Si vous souhaitez exécuter le X/Y de la logique dans la requête elle-même, vous pouvez utiliser
IF
(SI() docs, SI la réponse):Rendements:
OriginalL'auteur zamnuts