Mysql 如果选择输出行,则返回1

Mysql 如果选择输出行,则返回1,mysql,mariadb,Mysql,Mariadb,我想编写一个函数,如果select查询输出一行或多行,则返回1;如果select查询返回0行,则返回0。如何执行此操作?如果有结果或没有结果,可以使用coalesce和limit返回 select coalesce((select 1 from tableA where col1='value' limit 1), 0) 您可以使用coalesce和limit返回是否有结果 select coalesce((select 1 from tableA where col1='value' lim

我想编写一个函数,如果select查询输出一行或多行,则返回1;如果select查询返回0行,则返回0。如何执行此操作?

如果有结果或没有结果,可以使用coalesce和limit返回

select coalesce((select 1 from tableA where col1='value' limit 1), 0)
您可以使用coalesce和limit返回是否有结果

select coalesce((select 1 from tableA where col1='value' limit 1), 0)
另一个选择是使用

你也可以像这样结合

SELECT IF(COUNT(*) > 0, 1, 0) FROM table WHERE ...
另一个选择是使用

你也可以像这样结合

SELECT IF(COUNT(*) > 0, 1, 0) FROM table WHERE ...

“你能举个例子吗?”罗伊给了你一个例子。只需点击他提供的链接。或谷歌“row count sql”。@Roy row_count对于返回结果集的SELECT始终返回-1。结果集是否为空并不重要。你能举个例子吗?@Roy给了你一个例子。只需点击他提供的链接。或谷歌“row count sql”。@Roy row_count对于返回结果集的SELECT始终返回-1。结果集是否为空并不重要。这是我的选择查询选择*来自按ID排序的内部版本描述限制1存在选择*来自处理器产品pp,主板m pp。Socket m。Socket如果存在行,我需要返回1?很难说您到底想从查询中做什么。您的查询语法完全错误。我的猜测是,您正在尝试检查是否有一个具有不同套接字的处理器和motherbord的构建。我说得对吗?您应该更新您的问题,添加您的构建结构、处理器产品和主板表,并准确描述您想要得到什么。这样,我或其他人可以帮助您完成所需的查询。您完全理解我的查询。如果确实存在这样一个构建,我的查询将输出它。如果存在这样一行,我希望我的函数返回1。这是我的select查询select*FROM build WHERE ORDER BY ID DESC LIMIT 1 exists select*FROM processor_products pp,主板m WHERE pp.Socket m.Socket如果存在行,我需要返回1。很难说您到底想从查询中做什么。您的查询语法完全错误。我的猜测是,您正在尝试检查是否有一个具有不同套接字的处理器和motherbord的构建。我说得对吗?您应该更新您的问题,添加您的构建结构、处理器产品和主板表,并准确描述您想要得到什么。这样,我或其他人可以帮助您完成所需的查询。您完全理解我的查询。如果确实存在这样一个构建,我的查询将输出它。如果存在这样一行,我希望函数返回1。