我对SQL有点新意,并尝试按照上面的描述进行操作。以下是我的疑问:
SELECT
CONCAT (first_name, last_name) INTO full_name_variable
FROM
table_1
WHERE
phone_number = new.number;
它似乎不起作用。但是,当我使用AS
使用此查询时,它可以正常工作。像这样:
SELECT
CONCAT (first_name, last_name) AS full_name_variable
FROM
table_1
WHERE
phone_number = new.number;
我非常感谢帮助
答案 0 :(得分:0)
明确使用join
代替
SELECT CONCAT (first_name, last_name) INTO full_name_variable
FROM table_1 t1
INNER JOIN tabke_2 t1
ON t1.phone_number = t2.number;
或者您可以使用INSRET INTO
声明
INSERT INTO full_name_variable (full_name)
SELECT CONCAT (first_name, last_name)
FROM table_1 t1
INNER JOIN tabke_2 t1
ON t1.phone_number = t2.number;
答案 1 :(得分:0)
您需要了解变量和列之间的区别。
INTO
将值加载到变量中,该变量在您正在使用的编程块中可用。它与:=
相同。所以你的第一个版本与:
SELECT full_name_variable := CONCAT(first_name, last_name)
FROM table_1
WHERE phone_number = new.number;
AS
(实际上是可选的)命名结果集中的列。
您的代码似乎处于触发器中,其中通常不会返回结果集。我的猜测是你需要INTO
或:=
。我更喜欢:=
因为我觉得设置变量更直观。