从数据库中获取最后一条和第一条记录的替代方法 table

Alternate way to get last and first record from database table

SELECT * FROM
    (SELECT * FROM customer ORDER BY customer_id ASC  LIMIT 1 )DUMMY_ALIAS1
UNION ALL 
SELECT * FROM
    ( SELECT * FROM customer  ORDER BY customer_id DESC LIMIT 1)DUMMY_ALIAS11

获取最后一条和第一条记录的其他替代方法是什么,我认为我的查询未优化

试试这个:

SELECT c.* 
FROM customer c
INNER JOIN ( SELECT MIN(customer_id) AS minCustomerId, 
                    MAX(customer_id) AS maxCustomerId 
             FROM customer
           ) AS b ON c.customer_id IN (minCustomerId, maxCustomerId);

你的查询没问题,没有问题,但你可以稍微简化一下:

(SELECT * FROM customer ORDER BY customer_id ASC LIMIT 1)
UNION ALL
(SELECT * FROM customer  ORDER BY customer_id DESC LIMIT 1)

不需要使用外部查询和别名,但不要忘记在 customer_id:

上添加索引
alter table customer add index idx_customer_id (customer_id);

或者(可能更好,但这取决于上下文)将其定义为主键:

alter table customer add primary key (customer_id);

这将使您的查询得到优化。