gpt4 book ai didi

mysql - 如何将数组设置为mysql用户变量

转载 作者:可可西里 更新时间:2023-11-01 06:32:38 24 4
gpt4 key购买 nike

我没想到会这么难,但我正试图在 MySQL 中设置一个用户变量来包含一个值数组。我不知道如何做到这一点所以尝试做一些研究并且很惊讶没有找到答案。我试过:

SET @billable_types = ['client1','client2','client3'];

原因是我想稍后在以下语句中使用该变量:

SELECT sum((time_to_sec(timediff(tlg.time_stop, tlg.time_start))/3600)) as billable_hours
from mod_tmlog_time_log tlg, mod_tmlog_task_list mttl
where date(tlg.time_start) >= @time_start
and date(tlg.time_stop) <= @time_stop
and mttl.type IN (@billable_types)
and tlg.task_id = mttl.id
group by start_date
order by start_date desc;

非常感谢您的帮助。


快进了一段时间,我最终得到了以下快速而肮脏的解决方案,它没有给我在代码中其他地方重新使用数组的灵 active ,但这是一项不收费的管理任务,所以我不想花更多的时间在上面。

SELECT WEEKDAY(tlg.time_start) AS day_of_week, date(tlg.time_start) as start_date,
sum((time_to_sec(timediff(tlg.time_stop, tlg.time_start))/3600)) as billable_hours
from mod_tmlog_time_log tlg, mod_tmlog_task_list mttl
where date(tlg.time_start) >= @time_start
and date(tlg.time_stop) <= @time_stop
and mttl.type IN ('c1','c2','c3')
and tlg.task_id = mttl.id
group by start_date
order by start_date desc;

joostschouten 似乎找到了最优雅的解决方案(我自己还没有测试过)但是下次我写一些需要这个的东西时我会记得测试它!

最佳答案

刚在这里找到答案:How to cycle with an array in MySQL?

set @billable_types = 'client1,client2,client3';
select * from mttl where find_in_set(mttl.type, @billable_types);

关于mysql - 如何将数组设置为mysql用户变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11424969/

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