Vorwort In der MySQL-Datenbank verwenden wir manchmal Beurteilungsoperationen wie „if else“. Wie kann man also mit dieser Anforderung in MySQL umgehen? Syntax der MySQL-Beurteilungsoperation: Fall ..when-Anweisung Aber bei der Verwendung bin ich kürzlich auf ein Problem gestoßen. Ich werde im Folgenden nicht viel dazu sagen. Schauen wir uns die ausführliche Einführung an. Beschreiben Sie das Problem direkt. Ich habe eine Tabelle id_card_message, die ID-Nummern speichert. Die Tabellenstruktur und die Daten sind wie folgt (MySQL 5.7.14): mysql> wähle * aus ID_Card_Message; +------+--------------------+ | ID | Ausweisnummer | +------+--------------------+ | 1 | 342513199411222515 | | 1 | 342624197812023498 | | 1 | 310908198910123348 | +------+--------------------+ Nun möchte ich mir die Geschlechtsinformation anhand der vorletzten Ziffer der Ausweisnummer anzeigen lassen. Ich führe folgende SQL-Anweisung aus und es wird der entsprechende Fehler gemeldet: mysql> select case substr(Ausweisnummer,17,1) -> wenn (1,3,5,7,9), dann '男' -> wenn (0,2,4,6,8), dann '女' und 'Geschlecht', -> Ausweisnummer -> von ID-Kartennachricht; FEHLER 1241 (21000): Operand sollte 1 Spalte(n) enthalten Der Fehler lautet: „Operand sollte eine Spalte enthalten.“ Der einzige Verdacht besteht hier darin, dass in den Klammern nach der When-Klausel zu viele Werte stehen. Kann also in dieser When-Struktur nur ein Wert nach der When-Klausel stehen? Ich habe die Case-Syntax in Abschnitt 13.6.5.1 der folgenden offiziellen Dokumente überprüft und es scheint, dass es dafür keine Erklärung gibt. Selbstverständlich können Sie durch eine Änderung des Anweisungsformats dennoch an die benötigten Daten gelangen. wie folgt: mysql> auswählen -> Fall -> wenn substr(id_card_no,17,1) in (1,3,5,7,9), dann '男' -> wenn substr(id_card_no,17,1) in (0,2,4,6,8) dann '女' endet mit 'sex', -> Ausweisnummer -> von ID-Kartennachricht; +------+--------------------+ | Geschlecht | Ausweisnummer | +------+--------------------+ | Männlich | 342623199610222515 | | Männlich | 342624197812023498 | | Weiblich | 310908198910123348 | +------+--------------------+ Die aktuelle Idee ist, dass im Format „CASE-Wert, WHEN-Vergleichswert“ der Vergleichswert nach der When-Klausel nur ein einzelner Wert sein kann und nicht mit mehreren Werten verbunden werden kann. Der obige Vergleichswert hat beispielsweise die Werte 1, 3, 5, 7 und 9. In diesem Fall kann nur das obige SQL verwendet werden. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Ideen und Codes zur Implementierung der Vuex-Datenpersistenz
>>: Ein Bugfix für Tomcats automatisches Herunterfahren
Als ich kürzlich für einen Kunden druckte, bat er ...
Inhaltsverzeichnis 1. einige 2. jedes 3. finden 1...
Vorwort Die Entwickler des Unternehmens verwendet...
Über Docker Swarm Docker Swarm besteht aus zwei T...
2048 Minispiel, zu Ihrer Information, der spezifi...
Vorwort Ich habe gerade einen neuen VPS gekauft. ...
1. Was ist Eventdelegation? Ereignisdelegierung: ...
Einzigartige „Über“-Seiten Eine gute Möglichkeit, ...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
1. MySQL installieren Dieser Artikel wird über AP...
1. Laden Sie mysql-5.7.21-windowx64.zip von der o...
Inhaltsverzeichnis 01 Einführung in InnoDB Replic...
MySQL 5.7 und höhere Versionen ermöglichen die di...
Bei Diskussionen über Webstandards kommt immer wie...
Dieser Artikel stellt ein Beispiel für die Verwen...