Se definisco una variabile come set @a = "1";
. Come posso vedere che @a è una stringa?Ottieni il tipo di una variabile in MySQL
risposta
Non è possibile determinare il tipo di una variabile in MySQL.
In alternativa, si può facilmente CAST()
la variabile nel tipo desiderato:
@a = CAST(123 AS CHAR);
Maggiori informazioni ed esempi di fusione nel manuale di MySQL:
È possibile determinare il tipo di una variabile in MySQL. Vedi la mia risposta qui sotto. – 5lava
È possibile determinare il tipo di una variabile in MySQL. Creare una tabella selezionando la variabile e quindi controllare il tipo di colonna:
set @a:="1"; -- your variable
drop temporary table if exists foo;
create temporary table foo select @a; -- dirty magic
desc foo;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| @a | longtext | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
Sembra che non restituisca il tipo di dati corretto. – Pacerier
_Non sembra? _ Potresti essere più specifico? La colonna 'Type' riflette il tipo di variabile in quanto è rappresentato da MySQL ** internamente **. Non deve essere minimo/ottimale. Ad esempio, 'longtext' non diventerà magicamente' varchar (1) 'o' tinyint (1) 'come nel mio esempio sopra. – 5lava
Questo sembra bugged come accennato su [altro thread] (http://dba.stackexchange.com/q/57363/9405) ............... Sei sicuro che il tipo restituito nella tabella temporanea è lo ** stesso tipo ** di quello nella variabile? Sembra che una sorta di conversione implicita avvenga quando si crea 'table foo select @ a' ........ Perché restituisce' longlong' per semplici numeri interi e 'longblob' per semplici campi di bit? – Pacerier
In MySql, non è possibile identificare il tipo di dati della variabile. Ma c'è un modo per identificare solo le stringhe e interi utilizzando cast:
set @a = "11";
SELECT CAST(@a AS SIGNED); // Output : 11
set @a = "text";
SELECT CAST(@a AS SIGNED); // Output : 0
set @a = "121212";
SELECT CAST(@a AS SIGNED); // Output : 121212
set @a = "Mysql is open source";
SELECT CAST(@a AS SIGNED); // Output : 0
- 1. Ottieni il nome di una variabile locale
- 2. Come ottengo il tipo di una variabile?
- 3. Determinare il tipo completo di una variabile
- 4. Ottieni il nome effettivo di una variabile Swift come stringa
- 5. Ottieni il tipo in flex
- 6. Ottieni il tipo di classe in CoffeeScript
- 7. Come verificare se il tipo di variabile corrisponde a Tipo memorizzato in una variabile
- 8. Creazione del tipo di variabile ENUM in MySQL
- 9. Vedere il tipo di una variabile in Visual Studio
- 10. Determinare il tipo di una variabile in TCL
- 11. Controllare il tipo di variabile in FreeMarker
- 12. impostare una variabile in un'istruzione SELECT - MySQL
- 13. Ottieni risultati query MySQL come tipo di dati nativi?
- 14. Variabile di array in mysql
- 15. Come dichiarare una variabile in MySQL?
- 16. In MySQL esiste una variabile per il database corrente?
- 17. Utilizzo di una variabile di tipo generica
- 18. Come determinare il tipo di dati di una variabile
- 19. Ottieni il tipo di parametro generico
- 20. Ottieni tutte le righe selezionate di mysql in una matrice
- 21. Ottenere il tipo di una variabile nel codice C
- 22. forza compilatore per rivelare il tipo di una variabile
- 23. Come determinare il tipo primitivo di una variabile primitiva?
- 24. Come si controlla il tipo di una variabile locale?
- 25. Come determinare il tipo di una variabile? (non il tipo di oggetto)
- 26. Haskell Riferimento a una variabile di tipo
- 27. Ottieni l'ultimo carattere di una stringa da una variabile
- 28. Ottieni il tipo di un'interfaccia generica?
- 29. Is "tipo" una parola riservata in mysql
- 30. Ottieni il tipo effettivo di un parametro oggetto generico
Non capisco il vostro approccio qui. Non penso che tu possa ottenere un tipo di variabile in mysql, ma potrei sbagliarmi – marcgg
@marcgg, penso che tu "ottieni" ciò che intende. – Pacerier
Poiché le variabili devono essere dichiarate in primo piano con un tipo specifico, dovresti già sapere che @a è una stringa. Ma ovviamente c'è di più in corso qui. Cosa stai cercando di ottenere con questo? –