我需要单个查询来在 mysql 中执行此功能
select * from 'users' where user_name like 'account'
如果没有名称account
存在的用户,那么我必须使用第二个查询,否则我可以使用第一个查询。
select * from 'users' where user_name like 'manager'
有没有办法将其优化为单个查询?谢谢
我需要单个查询来在 mysql 中执行此功能
select * from 'users' where user_name like 'account'
如果没有名称account
存在的用户,那么我必须使用第二个查询,否则我可以使用第一个查询。
select * from 'users' where user_name like 'manager'
有没有办法将其优化为单个查询?谢谢
像这样的东西应该工作
Select IF ((Select count(*) from 'users' where user_name like 'account')>0,
select * from 'users' where user_name like 'account',
select * from 'users' where user_name like 'manager')
SELECT m.*
FROM users m
LEFT JOIN users a ON a.user_name = 'account'
WHERE m.user_name = coalesce(a.user_name, 'manager');
如果不是唯一的,它将无法正常工作user_name
,我认为它应该是,实际上。这将有助于了解如何定义表以正确设计查询。
只是一个想法,你怎么做
select *
from 'users'
where user_name like 'account' or user_name like 'manager'
order by user_name
比检查第一个帐户,如果它是 ='account',则从数据集中删除所有经理。如果它是经理,那么你有你的数据集
我认为你应该能够IF
在你的WHERE
子句中使用一个语句:
SELECT * FROM `users`
WHERE user_name LIKE
IF((SELECT COUNT(*)
FROM `users`
WHERE name = 'account'
) > 0,'account','manager');