sql >> Databasteknik >  >> RDS >> Mysql

MySQL-ordning efter primärnyckel

MySQL drar i allmänhet ut data genom infogningsordning som skulle vara efter primärnyckel, men bortsett från det kan du tekniskt sett göra samma sak om du drar ut namnet på primärnyckelns kolumn och placerar den i ordning efter

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')
);

För sammansatta nycklar kan du använda detta

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')
);

Tillstånd för åtkomst till informationsschema från DOCS stark>

INSTÄLLNING:

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

FRÅGA:

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

OUTPUT:

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


  1. Vänster gå med, summera och räkna gruppera efter

  2. Förlorade anslutningen till MySQL-servern när jag försökte ansluta till fjärransluten MySQL-server

  3. PHP-formulär infogas inte i mySQL-databasen

  4. Subtrahera månader från ett datum i PostgreSQL