gpt4 book ai didi

mysql - REGEX 通过子查询中的 GROUP_CONCAT 值集

转载 作者:行者123 更新时间:2023-11-30 00:23:48 30 4
gpt4 key购买 nike

我有一个可怕的问题,

已删除

现在,当用户只喜欢一个乐队时,这工作得很好,但是当用户喜欢 2 个或更多乐队时,由于子查询返回多个结果,这将不起作用,但我尝试然后 GROUP_CONCAT 我结束了使用 WHERE 子句,如下所示

已删除

这会导致错误#1111 - 组函数的无效使用

如果有人能够帮助我做到这一点,因为我真的不想将负载放到 Apache 服务器上,将结果拉到 php 中以获取值并触发查询负载,这最终可能会达到数百个或者可能对页面的一个部分进行数千次查询

更新2:呜呼有点...

SELECT 
B.*,
(SELECT COUNT(*) FROM `blog_likes` AS BL WHERE BL.`blog_id` = B.`blog_id` ) AS likes
FROM blog AS B
WHERE `tags` REGEXP (
SELECT GOUP_CONCAT(ConcatBandNames, '|')
FROM (
SELECT CONCAT(
CONCAT(
'%',
(
SELECT
`band_name`
FROM `band` AS BA
WHERE BA.`band_id` =
(
SELECT `band_id`
FROM `likes` AS L
WHERE `user_id` = '7'
AND `band_id` = BA.`band_id`
)
)
)
, '%'
) AS ConcatBandNames
) AS T
)

在语法方面工作,但现在它出错说#2014 - 命令不同步;您现在无法运行此命令

最佳答案

这就是它应该的样子 GROUP_CONCAT(CONCAT('.*',CONCAT(band_name, '.*')) SEPARATOR '|') 所以我的查询现在看起来像

SELECT 
B.*,
(SELECT COUNT(*) FROM `blog_likes` AS BL WHERE BL.`blog_id` = B.`blog_id` ) AS likes
FROM blog AS B
WHERE `tags` REGEXP (
SELECT
GROUP_CONCAT(CONCAT('.*',CONCAT(`band_name`, '.*')) SEPARATOR '|')
FROM `band` AS BA
WHERE BA.`band_id` =
(
SELECT `band_id`
FROM `likes` AS L
WHERE `user_id` = '7'
AND `band_id` = BA.`band_id`
)
)

关于mysql - REGEX 通过子查询中的 GROUP_CONCAT 值集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23035906/

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