【问题标题】:How to have a MySQL procedure return a boolean?如何让 MySQL 过程返回布尔值?
【发布时间】:2011-12-06 22:55:14
【问题描述】:
我想创建一个接收字符串的过程,在表和指定列中搜索该字符串,如果找到则返回 1,否则返回 0。我对 SQL 比较陌生,不太了解语法或命令。我想要这样的东西:
CREATE PROCEDURE dbo.GetUsername
(
@Username NCHAR(10)
)
AS
@boolVariable
SELECT @Username FROM Accounts
RETURN @boolVariable
【问题讨论】:
标签:
asp.net
mysql
sql
stored-procedures
【解决方案1】:
您不返回值,而是在结果集中提供该值。
CREATE PROCEDURE GetUsername
(
@Username NCHAR(10)
)
AS
SELECT Username FROM Accounts WHERE Username = @UserName;
在您的调用代码中,只需检查结果集中是否存在一行。
【解决方案2】:
我不确定您是否在寻找 mysql 或 mssql 解决方案。
delimiter //
drop procedure if exists search_string //
create procedure search_string (in str varchar(100))
begin
declare b,r bool;
select count(*) into r from your_table where your_field = str;
if r > 0 then
set b = 1;
else
set b = 0;
end if;
select b;
end; //
delimiter //
call search_string('searched_string');