Mysql
 sql >> база данни >  >> RDS >> Mysql

Ред на оценка на изрази и присвояване на променливи в MySQL UNIONs

Не обединявайте присвояването на @col с другите ви заявки.

Имате една заявка, за да присвоите стойност на @col, и отделна заявка, за да включите този запис във вашите резултати.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Docker. MySQL изображение. Не мога да променя файла my.cnf

  2. Съхранение на много големи цели числа в MySQL

  3. качване на снимки + информация за картини от php форма в база данни на mysql

  4. Използване на курсор в съхранена процедура за зацикляне на редове в MySQL

  5. Радиус на множество точки на географска ширина/дължина