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

Как да изберете елемент, този по-долу и този по-горе в MYSQL

Ето още един начин да го направите с помощта на UNION с. Мисля, че това е малко по-лесно за разбиране и по-гъвкаво от приетия отговор. Обърнете внимание, че примерът приема id полето е уникално, което изглежда е така въз основа на вашия въпрос.

SQL заявката по-долу предполага, че вашата таблица се нарича demo и има един единствен уникален id поле и таблицата е попълнена със стойностите, които сте посочили във вашия въпрос.

( SELECT id FROM demo WHERE STRCMP ( 'd01', id ) > 0 ORDER BY id DESC LIMIT 1 )
UNION ( SELECT id FROM demo WHERE id = 'd01' ORDER BY id ) UNION 
( SELECT id FROM demo WHERE STRCMP ( 'd01', id ) < 0 ORDER BY id ASC LIMIT 1 ) 
ORDER BY id

Той произвежда следния резултат:b03, d01, d02 .

Това решение е гъвкаво, защото можете да промените всяко от LIMIT 1 оператори до LIMIT N където N е произволно число. По този начин можете да получите например предишните 3 реда и следващите 6 реда.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Материализиран изглед в mysql

  2. MAMP mysql сървърът няма да стартира. Не се изпълняват процеси на mysql

  3. mysql PDO как да обвържем LIKE

  4. Как да генерирам UUIDv4 в MySQL?

  5. WEEK() Примери – MySQL