sql >> Database teknologi >  >> RDS >> Mysql

MySQL rækkefølge efter primær nøgle

MySQL trækker generelt data ud efter indsættelsesrækkefølge, som ville være efter primærnøgle, men bortset fra det kan du teknisk set gøre det samme, hvis du trækker primærnøglekolonnenavnet ud og placerer det i en rækkefølge 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')
);
 

Til sammensatte nøgler kan du bruge denne

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

Tilladelse til informationsskemaadgang fra DOCS

OPSÆTNING:

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

Forespørgsel:

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. Hvordan kan jeg sammenkæde et sæt resultater i MySQL?

  2. Atomic Increment med Entity Framework

  3. Tidsstempelforskel i timer for PostgreSQL

  4. Hvad er ækvivalent sætning af DBCC INPUTBUFFER(@@SPID)(som giver sql-sætning for nuværende forbindelse eller specificeret forbindelse) i MYSQL?