sql >> Databasteknik >  >> RDS >> Mysql

Ordningsföljd för uttalandeutvärdering och variabeltilldelning i MySQL UNIONs

Förena inte tilldelningen av @col med dina andra frågor.

Har en fråga för att tilldela ett värde till @col, och en separat fråga för att inkludera posten i dina resultat.

SELECT @col := col AS col    -- Fetch particular record given a value of
  FROM tbl                   -- "col", assigning the identifier to @col.
 WHERE col = 'd'



SELECT col                   -- Now include the above record in the
  FROM tbl                   -- Final result-set
WHERE col = @col

UNION ALL

SELECT col                   -- Fetch the immediately preceding record,
  FROM (  SELECT col         -- ordered by "col"
            FROM tbl
           WHERE col < @col
        ORDER BY col DESC
          LIMIT 1) preceding

UNION ALL

SELECT col                   -- Fetch the immediately following record,
  FROM (  SELECT col         -- ordered by "col"
            FROM tbl
           WHERE col > @col
        ORDER BY col ASC
          LIMIT 1) following
ORDER BY col ASC;


  1. Hur kan jag skriva en fullständig sökindexfråga som inte tar hänsyn till några stoppord?

  2. 5 Fördelar med proaktiv övervakning av databasprestanda

  3. Konvertera VARCHAR2 till tal

  4. Hur man får en lista över gemensamma vänner