Ich habe zwei Tabellen in mysql wie folgt:Wie mache ich mysql Ausdruck, um ganzzahligen Wert zurückzugeben?
Table1
hält die Fragen
qid tid qtype
101 1 1
102 1 2
103 1 3
104 1 4
Hier qtype
Fragetyp ist, wo qtype
1 und 2 numerische Werte und 3 und 4 akzeptieren Zeichenfolge akzeptieren. Ich habe qtype
als varchar
Spalte deklariert.
Table2 hält die Antworten
sid qid qtype qanswer
1 101 1 10
1 102 2 20
1 103 3 o1
1 104 4 o2
gibt es Reihen für jede Frage für jeden 'sid'.
Ich habe Daten in folgenden Art und Weise ausgewählt folgende Abfrage verwenden:
select a.sid, MAX(CASE WHEN (a.qid = 101) THEN if(a.qtype in(1,2),cast(a.qanswer as unsigned),a.qanswer) ELSE NULL END) AS '101' ,
MAX(CASE WHEN (a.qid = 102) THEN if(a.qtype in(1,2),cast(a.qanswer as unsigned),a.qanswer) ELSE NULL END) AS '102' ,
MAX(CASE WHEN (a.qid = 103) THEN if(a.qtype in(1,2),cast(a.qanswer as unsigned),a.qanswer) ELSE NULL END) AS '103' ,
MAX(CASE WHEN (a.qid = 104) THEN if(a.qtype in(1,2),cast(a.qanswer as unsigned),a.qanswer) ELSE NULL END) AS '104' from Table2 a join Table1 b on a.qtype = b.qtpe where b.tid = 1
sid 101 102 103 104
1 10 20 o1 o2
2 30 15 o2 o1
Ich wollte qtype
1 und 2 als Ganzzahl wählen, damit ich in meiner Anfrage unter Anweisung verwendet:
if(qtype in (1,2),cast(qanswer as unsigned),qanswer)
Ich bin Keine Antwort für qtype
1 und 2 wie gewünscht erhalten. Ich nahm Bezug von diesem
Ich versuchte auch convert
anstelle der Besetzung, sondern bekam das gleiche Ergebnis. Wie kann ich qtype
1 und 2 als Ganzzahl umwandeln?
Wie man den Integer-Wert von mysql Ausdruck zurückgibt.
Wie mache ich mysql zu Integer-Wert statt String-Wert zu wählen. – AMahajan
@AMahajan. . . Das wäre eine andere Frage als die, die Sie gestellt haben. Sie sollten neue Fragen als * Frage * und nicht als * Kommentar * stellen. Geben Sie Beispieldaten und gewünschte Ergebnisse an. –