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
Inhaltsverzeichnis Frage: Antwort: Wirklichkeit: ...
In diesem Artikelbeispiel wird der spezifische Co...
Nginx: PV, UV, unabhängige IP Jeder, der Websites...
Gemeinsamkeiten: Das DIV-Tag und das SPAN-Tag beh...
MySQL 5.7.20 Zip-Installation, der spezifische In...
Da ich MySQL schon so lange verwende, glaube ich,...
Fremdschlüssel Abfrage, bei welchen Tabellen der ...
Inhaltsverzeichnis Vorwort 1. Übersicht 2. Lese- ...
1. Wechseln Sie in das Verzeichnis /etc/init.d: ...
Installieren Sie Docker im Linux-System neu und g...
Inhaltsverzeichnis 1. Mehrere Syntaxen von Insert...
Wenn ein Div gleichzeitig Hintergrundfarbe und Hi...
Hintergrund Der Unternehmenscode wird Dritten zur...
SELECT * FROM Tabellenname Limit m,n; SELECT * FR...
Inhaltsverzeichnis Vorwort 1. Umgebungskonfigurat...