Wie kann ich festlegen, Sortierung beim erstellen einer Tabelle aus select in mysql?

Beim erstellen einer Tabelle mit dynamisch erstellt und definiert Spalten von einer select-Ergebnis, wie kann ich die Sortierung angeben, wie Sie beim anlegen einer Tabelle mit den Spalten-Definitionen?

d.h.

CREATE TABLE IF NOT EXISTS my_table (
  SELECT * FROM (
    SELECT ....
  ) )

Oben erstellt die Tabelle mit den dynamischen Spalten Prima, aber es ist nicht die Sortierung, die ich möchte. Es ist mit utf8_general_ci und ich will, dass es utf8_unicode_ci.

Unten funktioniert nicht

CREATE TABLE IF NOT EXISTS my_table (
  SELECT * FROM (
    SELECT ....
  ) ) DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;

es gibt Fehler Meldung angezeigt, die Befehle werden nicht gültig, die auf dieser position.

Ich merke, der Vorschlag ist nicht gültig, also welche Methode zur Erreichung dieser Ziele ist? Ich habe versucht Einstellung der Datenbank-collation denken, das war Vorgabe für die Datenbank für alle Tabellen erstellt, aber es scheint nicht zu Verhalten wie die - oder
vielleicht bin ich nicht eigentlich die Standard-Einstellung für die Datenbank, wenn ich ALTER die Datenbank-Sortierung. Gibt es eine Möglichkeit zum festlegen einer Standardeinstellung für Tabellen, so dass Sie den ersten code-block oben erstellt die Tabelle mit der gewünschten Sortierung?

Den SELECT... Ergebnisse in der obigen code-Blöcke bezieht sich auf eine Vielzahl von bedingten und/oder logischen Wert-Einstellung mit case/when Aussagen, die Zeichenfolge analysieren, und die Funktion liefert das Ergebnis - es ist nicht nur die Auswahl von Spalten eins-zu-eins aus einer anderen Tabelle mit definierten Spalten, ist also nicht so einfach wie die Definition der anderen Tabelle die Spalten.

Ich habe bereits versucht die Einstellung der Datenbank-Sortierung vor der Verwendung von ALTER DATABASE my_db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci aber dies ändert nichts an den Ergebnissen. Die Tabellen werden noch erstellt (und die Spalten in den Tabellen) mit utf8_general_ci beim erstellen einer Tabelle aus einem select (dynamisch definierten Spalten aus der select-Ergebnisse)

  • Die Dokumentation auf CREATE TABLE, beschreibt ein paar Möglichkeiten, das zu tun diese Art der Sache, aber keiner von Ihnen entsprechen Ihren Erwartungen im zweiten Fall.
  • Richtig, das ist, warum ich bin mit der Frage hier(?) Sofern ich die zweite code-block oben nur als Anregung, was ich arbeiten möchte, aber ich merke, dass es nicht richtig ist. Ich bin auf der Suche für das, was wäre die richtige Lösung. Die Dokumentation bezieht sich auf die Tatsache, dass Sie können erstellen Sie eine Tabelle aus einer select-Tisch-Optionen für die Sortierung existieren, aber ich kann nicht finden, Beispiele, die zeigen, dass diese beiden zusammen. Die SELECT .... von oben ist eine Sammlung von Ergebnissen erstellt, die verschiedene Logik wie case when Ausdrücke, andere Tabellen, und Ergebnisse von Funktionen.
InformationsquelleAutor Streamline | 2017-09-13
Schreibe einen Kommentar