gpt4 book ai didi

MySql 如果存在设置值?

转载 作者:可可西里 更新时间:2023-11-01 07:20:53 24 4
gpt4 key购买 nike

我有一个返回大量信息并使用连接连接两个表的查询,它工作得很好。

但我有一个名为 tickets 的字段,我需要查看是否有可用时间,如果有则将其设置为 1,否则将其设置为 0。就像这样。

SELECT 
name,poster,sid,tickets = (IF SELECT id FROM times WHERE shows.tid=times.tid LIMIT 1,
if value returned set to 1, otherwise set to 0)
FROM shows JOIN show_info ON (id) WHERE sid=54 order by name ASC

显然这不是正确的 MySQL 语句,但它会给出我正在寻找的示例。

这可能吗?或者我是否需要进行第一次选择然后循环遍历结果并以这种方式进行第二次选择和设置值?还是一种更好的性能明智?

最佳答案

我会查看 EXISTS,它在大多数情况下比 COUNT 与您的 where 语句匹配的所有项目快得多。照这样说。您的查询应如下所示:

SELECT 
name,
poster,
sid,
(
CASE WHEN EXISTS(SELECT NULL FROM times WHERE shows.tid=times.tid)
THEN 1
ELSE 0
END
)AS tickets
FROM
shows
JOIN show_info ON (id) WHERE sid=54 order by name ASC

关于MySql 如果存在设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10163506/

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