gpt4 book ai didi

mysql - 根据某些条件返回行,如果没有行符合条件,则返回 mariadb sql 中的所有行

转载 作者:行者123 更新时间:2023-11-30 21:27:53 24 4
gpt4 key购买 nike

我正在尝试根据此处的某些条件获取行。我想要的是在行符合匹配条件时获取行,如果不匹配则返回所有行。

下面是我的查询。

SELECT t.* FROM 
CASE
WHEN (SELECT COUNT(*) FROM users WHERE user_name LIKE '%10%' > 0)
// Line 3
THEN
(SELECT * FROM users WHERE user_name LIKE '%10%' LIMIT 0,10)t
ELSE
(SELECT * FROM users LIMIT 0,10)t
END

我在第 3 行遇到语法错误

最佳答案

你可以使用UNION ALL:

(SELECT u.*
FROM users u
WHERE u.user_name LIKE '%10%'
LIMIT 0, 10
) UNION ALL
(SELECT u.*
FROM users u
WHERE NOT EXISTS (SELECT 1 FROM users u2 WHERE u2.user_name LIKE '%10%')
LIMIT 0, 10
) ;

您也可以只使用OR:

SELECT u.*
FROM users u
WHERE u.user_name LIKE '%10%' OR
NOT EXISTS (SELECT 1 FROM users u2 WHERE u2.user_name LIKE '%10%')
LIMIT 0, 10

关于mysql - 根据某些条件返回行,如果没有行符合条件,则返回 mariadb sql 中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57987073/

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