为mysql设置全局变量

yqlxgs2m  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(417)

例如,当我使用sql时

select
concat(author_fname, ' ', author_lname)..
....
from...

我的问题是,当我执行多个查询时,我必须反复键入concat命令。
有没有办法设置一个全局变量

set
@full_name =(
    select
        concat(author_fname, ' ', 
        author_lname)
    from
        books
);

现在我只需要做:

select full_name 
from books;

但是我的set命令不起作用,我不认为declare是一种方法,有没有办法解决这个问题?非常感谢!

o8x7eapl

o8x7eapl1#

您可以使用视图:

create view v_books as
    select concat(author_fname, ' ', author_lname) as full_name, b.*
    from books b;

如果从视图中选择,您将看到该列。
如果直接从表中选择时需要,也可以使用生成的列:

alter table books add full_name varchar(255) generated always as
    (concat(author_fname, ' ', author_lname));

相关问题