sql >> Database >  >> RDS >> Mysql

MySQL-volgorde op primaire sleutel

MySQL haalt gegevens er over het algemeen uit op volgorde van invoegen, wat per primaire sleutel zou zijn, maar afgezien daarvan kun je technisch hetzelfde doen als je de naam van de primaire sleutelkolom tevoorschijn haalt en in een volgorde plaatst door

SELECT whatever FROM table
ORDER BY
(   SELECT `COLUMN_NAME`
    FROM `information_schema`.`COLUMNS`
    WHERE (`TABLE_SCHEMA` = 'dbName')
      AND (`TABLE_NAME` = 'tableName')
      AND (`COLUMN_KEY` = 'PRI')
);

Voor samengestelde sleutels kunt u dit gebruiken

SELECT whatever FROM table
ORDER BY
(   SELECT GROUP_CONCAT(`COLUMN_NAME` SEPARATOR ', ')
    FROM `information_schema`.`COLUMNS`
    WHERE (`TABLE_SCHEMA` = 'dbName')
      AND (`TABLE_NAME` = 'tableName')
      AND (`COLUMN_KEY` = 'PRI')
);

Toestemming voor toegang tot informatieschema's van de DOCS

INSTELLEN:

CREATE TABLE some_stuff (
    firstID INT,
    secondID INT,
    username varchar(55),
    PRIMARY KEY (firstID, secondID)
) ;

QUERY:

SELECT GROUP_CONCAT(`COLUMN_NAME` SEPARATOR ', ')
FROM `information_schema`.`COLUMNS`
WHERE (`TABLE_SCHEMA` = 'dbName')
  AND (`TABLE_NAME` = 'some_stuff')
  AND (`COLUMN_KEY` = 'PRI');

UITGANG:

+--------------------------------------------+
| GROUP_CONCAT(`COLUMN_NAME` SEPARATOR ', ') |
+--------------------------------------------+
|              firstID, secondID             |
+--------------------------------------------+


  1. Unieke waarden afdwingen over twee tabellen

  2. Hoe XBRL-gegevens importeren in MySQL?

  3. Inleiding tot SQL-gegevenstypen

  4. Tabeltekenset/sortering instellen met Hibernate Dialect?