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
1. Stoppen Sie zuerst den mysqld.exe-Prozess 2. Ö...
Viele Leute sagen, dass IE6 PNG-Transparenz nicht...
Dieser Artikel beschreibt anhand von Beispielen d...
Inhaltsverzeichnis 1. Einleitung 2. MVCC (Multi-V...
Inhaltsverzeichnis 1: Handschriftliche Seitennumm...
[mysql] Ersetzungsverwendung (Teil des Inhalts ei...
Inhaltsverzeichnis Umweltbedingungen Aufgetretene...
Inhaltsverzeichnis Überblick Was sind Rückrufe od...
In diesem Artikel wird der spezifische Code von j...
1. CDN Es ist die am häufigsten verwendete Beschl...
Wirkung html <div Klasse="sp-container&qu...
Moores Gesetz gilt nicht mehr Seit der Übernahme ...
Vier praktische Vue-Custom-Anweisungen 1. V-Wider...
Pessimistische Sperre Pessimistische Sperre, betr...
Inhaltsverzeichnis 1. Vorbereitung 2. MySQL-Versc...