J'ai une base de données mysql avec un champ "order_number" défini comme INT à l'occasion impair le numéro de commande aurait besoin d'un trailing r eg 2100r évidemment INT n'acceptera que des nombres et triera le nombre correctement ASC ou DESC si j'utilise VARCHAR pour surmonter cette restriction, il acceptera correctement le caractère r final mais ne triera pas les nombres dans l'ordre numérique correctement, est-il possible que l'option INT puisse être forcée à accepter un caractère?Mysql INT avec un caractère
Répondre
Vous pouvez utiliser la fonction CAST
dans MySQL, mais c'est une bonne habitude de stocker order_number
en int en utilisant le typage avant d'insérer de nouvelles données dans la table.
SELECT CAST(int_col AS CHAR);
SELECT CAST(char_col AS unsigned INTEGER);
Non, cette option n'existe pas.
Vous devez probablement utiliser une colonne VARCHAR
pour le numéro de commande et une colonne séparée (éventuellement INT
) uniquement pour le tri; remplir la colonne d'assistance en fonction du numéro de commande lors de l'insertion et de la mise à jour des lignes.
Vous devez stocker vos ID de compte sous forme de chaînes de caractères si l'une d'entre elles contient des lettres. Mais vous pouvez les commander correctement tant que les lettres sont toujours des suffixes. Cela fonctionne si vos valeurs AccountID ont ou non des espaces principaux.
SELECT *
FROM Account
ORDER BY CAST(AccountID as UNSIGNED INTEGER), AccountID
Cela commande numérique, puis traiter les nombres égaux en commandant lexicalement.
http://sqlfiddle.com/#!2/a16bf/8/0
Si vous vouliez les commandes « r » à montrer devant leurs amis sans fioritures avec le même numéro, vous pouvez le faire:
SELECT *
FROM Account
ORDER BY CAST(AccountID as UNSIGNED INTEGER), AccountID DESC
Essayez de convertir la chaîne à numéro à l'aide de cette façon (chaîne_numéro * 1), par exemple -
SELECT * FROM table ORDER BY column * 1;
Non, pas possible. Comme l'a dit @Jon, il n'y a pas d'autres options pour forcer un champ INT
à conserver les données VARCHAR
.
- 1. Comment convertir un caractère * en un int?
- 2. Convertir un entier en caractère int j2me
- 3. comment convertir un int en un caractère C++
- 4. Mysql supprimer un certain caractère
- 5. combiner un caractère et un int à une chaîne
- 6. convertir int en chaîne avec une certaine longueur de caractère
- 7. nième caractère de la chaîne à int
- 8. MySQL INT sens
- 9. Modifier MYSQL INT Valeur
- 10. caractère django ensemble avec MySQL bizarreries
- 11. MySQL int définition explication
- 12. mysql remplacer chaîne + suivant un caractère
- 13. Recherche avec des mots d'un caractère (MySQL)
- 14. Insérer un caractère Java dans MySQL char
- 15. avec Joda new DateTime (int, int, int, int, int, int)
- 16. mysql mettre à jour par un caractère
- 17. Comme dans mysql avec caractère spécial \
- 18. Détecter tout caractère autre que int
- 19. MySQL: bigint Vs int
- 20. Casser un caractère spécial dans MySQL
- 21. Comment enregistrer un caractère chinois dans MySQL
- 22. SQLite caractère MYSQL encodage
- 23. Caractère étrange sur mysql
- 24. stocké caractère spécial dans Mysql
- 25. effacement caractère de résultat mysql
- 26. MySql afficher int comme valeur
- 27. MySQL: Convertir INT en DATETIME
- 28. php mysql caractère spécial échappement
- 29. unsigned int mysql dans C#
- 30. Dois-je utiliser un INT grand ou INT régulier dans MySQL pour stocker un horodatage?