gpt4 book ai didi

MySQL在SELECT中分配var但不显示它

转载 作者:行者123 更新时间:2023-11-29 13:01:06 25 4
gpt4 key购买 nike

我有这个查询:

SET @id := '';
SELECT
libs.song_id,
songs.name AS song_name,
artists.id AS artist_id,
artists.name AS artist_name,
songs.description,
libs.status,
libs.activated,
libs.giftable,
@id := libs.song_id,
IF((SELECT activated FROM libs WHERE @id = song_id && activated = 1), 1, 0) AS duplicate
FROM libs, songs, artists
WHERE
libs.song_id = songs.id &&
artists.id = songs.artist_id &&
libs.activated = 0 &&
libs.user_id = '1';

一切都按计划进行,但我还得到了一个名为 @id := libs.song_id 的列,我该如何避免它?
谢谢。

最佳答案

首先有几件事。学习使用正确的连接语法。一个简单的规则:只是不要在 from 子句中使用逗号。

其次,您甚至不必将变量初始化为单独的语句。

第三,这个想法很简单。只需在另一个表达式中分配变量,就有一个非常自然的地方可以做到这一点:

SELECT (@id := libs.song_id) as song_id,
songs.name AS song_name, artists.id AS artist_id, artists.name AS artist_name,
songs.description, libs.status, libs.activated, libs.giftable,
IF((SELECT activated FROM libs WHERE @id = song_id AND activated = 1), 1, 0) AS duplicate
FROM libs join
songs
on libs.song_id = songs.id join
artists
on artists.id = songs.artist_id
WHERE libs.activated = 0 AND libs.user_id = '1';

关于MySQL在SELECT中分配var但不显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23324989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com